Rubyコールバックの:before_save
および:before_create
Railsが何であり、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
をすべての場所で読み取ります(およびINSERTではなくUPDATE)。
これから、before_save
およびbefore_create
コールバックの前に検証が実行されることがわかります。
before_save
は、before_create
の少し前にあります。私の知る限り、両者の間では何も起こりません。ただし、before_save
は更新操作でも発生しますが、before_create
は作成時にのみ発生します。
before_save
は、オブジェクトが保存されるたびに呼び出されます。したがって、新規および既存のオブジェクトに対して。 (作成および更新アクション)
before_create
は作成前のみ。したがって、新しいオブジェクトのみ(アクションを作成)
before_create
vs before_save :on => :create
コールバックの順序に注意する必要がある場合があります
詳細については、こちらを参照してください: http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/