我有一個after_commit on::在我的模型中創建回調,並且它被調用兩次。在這個回調中有六個方法,其中一些被插入到我的數據庫中。恐怕事情會放緩,我的數據庫將會增長得太快。爲什麼我的Rails回調被調用兩次?
奇怪的是,我的before_create after_create回調只能執行一次。什麼可能導致這個?
我有一個after_commit on::在我的模型中創建回調,並且它被調用兩次。在這個回調中有六個方法,其中一些被插入到我的數據庫中。恐怕事情會放緩,我的數據庫將會增長得太快。爲什麼我的Rails回調被調用兩次?
奇怪的是,我的before_create after_create回調只能執行一次。什麼可能導致這個?
簡短的回答:使用after_save的,而不是after_commit
我發現使用before_create解決的問題。
當你使用:
user = User.new
user.save
你是射擊每次before_save鉤。
before_create
應該工作
不幸的是,沒有工作,還是雙呼叫。 – Bholzer 2012-08-04 03:11:18
向我們展示一些代碼,是否在回調中調用保存? – house9 2012-08-04 03:29:43
不,我不是,我應該嗎? 'after_commit:func1,:func2,:func3,:func4,func5,:func6,on :: create# 儘管正在創建,但model.save似乎正在觸發回調。這是正常的嗎? – Bholzer 2012-08-04 03:41:29