我试图在一个方法中手动运行所有回调方法。例如,我想在我的模型中运行所有“before_destroy”方法。
有没有办法手动触发这个?例如,像这样的东西:
def some_method
# ...
trigger(:before_destroy)
end
然后它将运行我用“before_destroy :...”声明的所有方法
有什么想法吗?
最佳答案
如果您乐于同时运行 :before 和 :after 钩子(Hook),您可以尝试 run_callbacks
。
来自 the docs :
run_callbacks(kind, &block)
运行给定事件的回调。
按照设置的顺序调用 before 和 around 回调,生成 block (如果有的话),然后以相反的顺序运行 after 回调。
如果回调链停止,则返回 false。否则返回 block 的结果,如果没有给出 block 则返回 true。
run_callbacks :save do
save
end
关于ruby-on-rails - 你能在 Ruby on Rails 中手动 "trigger"回调吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110054/