私は、キューにレコードを送るafter_update
コールバックを持つRailsオブジェクトを持っています。問題は、キューがオブジェクトが実際に更新されているよりも速く処理されていることに気付いたことです。Rails 4でのafter_updateコールバックの理解
私の質問は:after_update
は、オブジェクトの更新が終了した後ではなく、起動したときですか?の更新が成功した後に何かをしたい場合は、コールバックをにすればいいですか?
私は、キューにレコードを送るafter_update
コールバックを持つRailsオブジェクトを持っています。問題は、キューがオブジェクトが実際に更新されているよりも速く処理されていることに気付いたことです。Rails 4でのafter_updateコールバックの理解
私の質問は:after_update
は、オブジェクトの更新が終了した後ではなく、起動したときですか?の更新が成功した後に何かをしたい場合は、コールバックをにすればいいですか?
after_save
、after_create
、after_update
が呼び出されますトランザクションブロック内で実行されるため、SQL文を実行する前に実行されます。
文の実行が完了したときに何かしたい場合は、after_commitコールバックを使用する必要があります。
Railsのマニュアルを参照すると、使用できるコールバックがたくさん見つかります。この仕事のための最高のは、 "after_commit" であるかもしれない:
これはストレートRailsのドキュメント(下部にリンク)
3.1 Creating an Object
before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback
3.2 Updating an Object
before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
after_commit/after_rollback
3.3 Destroying an Object
before_destroy
around_destroy
after_destroy
Railsのドキュメントからです:http://guides.rubyonrails.org/active_record_callbacks.html
ありがとうございます!私はこれについて私の心を失っていた – Zelenka