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

时间:2012-11-26 21:19:13

标签: ruby-on-rails ruby-on-rails-3

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

但似乎即使我在我的模型文件中依次使用它们:

after_create :callback1
after_create :callback2

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

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

1 个答案:

答案 0 :(得分:5)

你可以做这样的事情

def some_action
    callback1
    callback2
end

after_create :some_action

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

  

Callbacks通常按照定义的顺序运行,但定义为模型上的方法的回调除外,它们最后被调用。