强制执行订单到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时。