我一直在試圖弄清楚在rails中何時調用活動記錄的每個回調。Rails Active Record回撥
我的具體問題是:before_save是否被調用過。例如,如果你做一個創建。
更廣泛的方法是何時何地被稱爲。也可以說你在回調中修改了現有的對象,你將不得不重新保存,並且你可以在回調中強制保存,這樣可以節省調用save_callbacks的費用......你可以看到我要去哪裏。
我一直在試圖弄清楚在rails中何時調用活動記錄的每個回調。Rails Active Record回撥
我的具體問題是:before_save是否被調用過。例如,如果你做一個創建。
更廣泛的方法是何時何地被稱爲。也可以說你在回調中修改了現有的對象,你將不得不重新保存,並且你可以在回調中強制保存,這樣可以節省調用save_callbacks的費用......你可以看到我要去哪裏。
我不完全知道你的意思,但如果你想改變一個回調內在的東西,就值得保存,做一個before_save
回調,並且不會明確保存,因爲您知道該項目將在下一次保存。
在after_save
你最好不要改變任何東西並保存,因爲確實會再次觸發回調,並導致無限循環。
它可以有條件雖然申報回調,這可能會解決你的問題,以及:
before_save :do_something, :unless => some_condition
更多的例子可以發現here。
無論如何,如果這仍然不清楚或者不完全符合您的情況:如果您舉一個更實際的例子,討論這個更容易。
你的問題是有點不清楚,也許http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html可以幫助