如果我有两个`after_create`语句,我如何确保一个在另一个之前运行?

mar*_*ion 0 ruby-on-rails ruby-on-rails-3

after_create在同一个模型上有两个回调,第二个依赖于一个属性(比如说client.score)不是nil.在第一个中,它运行计算并将有问题的属性设置为某个非零值.

但似乎即使我在我的模型文件中正确地使用它们,如下所示:

after_create :callback1
after_create :callback2
Run Code Online (Sandbox Code Playgroud)

每当callback2运行时,它仍然client.score是零.

如何强制第二个在第一个之后运行?

mač*_*ček 5

你可以这样做

def some_action
    callback1
    callback2
end

after_create :some_action
Run Code Online (Sandbox Code Playgroud)

但是,根据文档,您的代码示例也应该没问题

回调通常按照定义的顺序运行,但回调定义为模型上的方法(最后调用).