2012-08-04 166 views
3

我有一個after_commit on::在我的模型中創建回調,並且它被調用兩次。在這個回調中有六個方法,其中一些被插入到我的數據庫中。恐怕事情會放緩,我的數據庫將會增長得太快。爲什麼我的Rails回調被調用兩次?

奇怪的是,我的before_create after_create回調只能執行一次。什麼可能導致這個?

回答

2

簡短的回答:使用after_save的,而不是after_commit

龍回答:How to organize complex callbacks in Rails?

+0

不幸的是,沒有工作,還是雙呼叫。 – Bholzer 2012-08-04 03:11:18

+2

向我們展示一些代碼,是否在回調中調用保存? – house9 2012-08-04 03:29:43

+1

不,我不是,我應該嗎? 'after_commit:func1,:func2,:func3,:func4,func5,:func6,on :: create# 儘管正在創建,但model.save似乎正在觸發回調。這是正常的嗎? – Bholzer 2012-08-04 03:41:29

0

我發現使用before_create解決的問題。

當你使用:

user = User.new 
user.save 

你是射擊每次before_save鉤。

before_create 

應該工作

相關問題