13
after_validation
回調在before_save
之前觸發。這些回調之間會發生什麼,如果有的話?爲什麼會選擇一個在另一個之上?after_validation和before_save之間會發生什麼?
after_validation
回調在before_save
之前觸發。這些回調之間會發生什麼,如果有的話?爲什麼會選擇一個在另一個之上?after_validation和before_save之間會發生什麼?
有一個after_validation_on_update
或after_validation_on_create
取決於如果該項目是一個新的記錄。
並且如Max所述,如果對象無效,則鏈在其到達before_save
回調之前被中斷,因此如果需要發生某些事情而不管該對象的有效性如何,before_save
並不適合它。
參考:? http://apidock.com/rails/ActiveRecord/Callbacks/after_validation_on_create
'after_validation'也會在調用''#valid調用,所以有可能是情況下,您只需要檢查記錄的有效性,但仍運行驗證後的東西。根據我的經驗,我從來沒有機會使用'after_validation'。 – jvnill 2013-02-11 00:55:23
除了jvnill所說的之外,如果一個對象無效,它就不會被保存。因此,調用保存在一個無效的對象上不會觸發'before_save'回調,而它會觸發'after_validation'。 – Max 2013-02-11 03:42:07