强制执行订单到Rails回调
如何强制执行回调订单? 例如,如何确保在Step 2
之前发生Step 2
:
after_save do logger.info "Step 1" end after_save do logger.info "Step 2" end
我的实际例子涉及使用第三方gem并确保它们在我自己的回调之前完成(它们在回调上工作)。 我必须使用相同的回调(即不能使用before
组合)。
谢谢!
如果使用类级回调,则按照定义的顺序调用它们。
class Foo < ActiveRecord::Base after_save :step1 after_save :step2 private def step1 # stuff end def step2 # stuff end end
对于第三方gem,它取决于你如何与gem进行交互,但是它们首先会被调用,因为它们首先被加载。
我根本不建议使用def after_save
样式,特别是在处理第三方gem时。