如何强制执行回调订单?例如,您如何确保在此Step 1
之前发生Step 2
:
after_save do
logger.info "Step 1"
end
after_save do
logger.info "Step 2"
end
Run Code Online (Sandbox Code Playgroud)
我的实际例子涉及使用第三方宝石并确保它们在我自己的回调之前完成(它们在回调上工作).我必须使用相同的回调(即不能使用before
和after
组合).
谢谢!
wup*_*tah 17
如果使用类级回调,则按照定义的顺序调用它们.
class Foo < ActiveRecord::Base
after_save :step1
after_save :step2
private
def step1
# stuff
end
def step2
# stuff
end
end
Run Code Online (Sandbox Code Playgroud)
对于第三方gem,它取决于你如何与gem进行交互,但是它们首先会被调用,因为它们首先被加载.
我根本不建议使用这种def after_save
风格,特别是在处理第三方宝石时.
归档时间: |
|
查看次数: |
2493 次 |
最近记录: |