我正在尝试在方法内部手动运行所有回调方法。例如,我想在模型中运行所有“ before_destroy”方法。
有没有办法手动触发此操作?例如,类似:
def some_method
# ...
trigger(:before_destroy)
end
然后它将运行我用“ before_destroy:....”声明的所有方法。
有任何想法吗?
如果您乐于同时运行:before和:after钩子,则可以尝试run_callbacks
。从文档:
run_callbacks(kind, &block)
运行给定事件的回调。
按设置顺序调用before和around回调,产生该块(如果给定的话),然后以相反的顺序运行after回调。
如果回调链已暂停,则返回false。否则,返回块的结果;如果未给出块,则返回true。
run_callbacks :save do
save
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句