在 Rails 中运行另一个方法之前调用一个方法
我有一个 Model
,其中包含 method_1
到 method_10
。我还有ModelObserver
。 我想在调用 method1 到 method_9
之前通知 ModelObserver
,但不通知 method_10
。
有没有一种干燥的方式来编写这个,而不是在所有 9 个方法中重复 notify_observers(:after_something) ?
I have a Model
, which has method_1
to method_10
. I also have ModelObserver
.
I would like to notifiy ModelObserver
before invoking method1 to method_9
, but not method_10
.
Is there a DRY way to write this, instead of repeating notify_observers(:after_something) in all 9 methods?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在
config/initializers
目录中添加一个名为monkey_patches.rb
的文件。该补丁使您能够在类的实例方法上添加
before
和after
回调。钩子可以是:可以在同一个方法上注册多个钩子。被挂钩的方法应该出现在挂钩之前。
例如:
Add a file called
monkey_patches.rb
inconfig/initializers
dirctory.The patch enables you to add
before
andafter
callbacks on an instance method of a class. A hook can be:Multiple hooks can be registered on a same method. The method being hooked should come before the hook.
E.g:
像这样的事情怎么样?
How about something like this?