为什么我的Rails回调被调用两次?

时间:2012-08-04 02:42:29

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

我有一个after_commit on ::在我的模型中创建回调,并且它被调用两次。此回调中有六种方法,其中一些方法是插入到我的数据库中。我担心事情会变慢,我的数据库会变得太快。

奇怪的是我的before_create after_create回调只执行一次。可能导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:4)

简答:使用after_save而不是after_commit

答案很长:How to organize complex callbacks in Rails?

答案 1 :(得分:0)

我发现使用before_create解决了这个问题。

使用时:

user = User.new
user.save

您每次都在触发before_save挂钩。

before_create

应该有效