[英]Ruby on Rails: Iterate model values from another model before_create / before_save
[英]Ruby on Rails Callback, what is difference between :before_save and :before_create?
您能否詳細解釋一下 Rails 回調上的:before_save
和:before_create
Ruby 是什么,以及它們與 Rails 驗證有什么關系? 驗證是否發生在:before_save
或:before_create
?
在 Rails 下的創建操作中,數據庫操作之前有 6 個回調,之后有 2 個。 按順序,這些是:
before_validation
before_validation_on_create
after_validation
after_validation_on_create
before_save
before_create
after_create
after_save
更新操作具有完全相同的集合,除了讀取update
而不是到處create
(以及UPDATE而不是INSERT )。
從中可以看出,驗證是在before_save
和before_create
回調之前進行的。
before_save
發生在before_create
之前。 據我所知,他們之間沒有發生任何事情。 但是before_save
也會在更新操作時觸發,而before_create
只會在創建時觸發。
每次保存 object 時都會調用before_save
。 所以對於新的和現有的對象。 (創建和更新操作)
before_create
僅在創建之前。 因此僅適用於新對象(創建操作)
before_create
vs before_save:on =>:create
有時您必須注意回調的順序
有關更多詳細信息,請參見此處:
http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.