LoginSignup
2
0

More than 1 year has passed since last update.

Railsのコールバックが走るタイミング

Last updated at Posted at 2023-05-19

呼ばれる順番

順番は以下の通り

before_validation
after_validation
before_save
around_save
before_create / before_update
around_create / around_update
after_create / after_update
after_save
after_commit / after_rollback

それぞれのコールバックが呼ばれるタイミング

before_validation

タイミング:バリデーションが行われる直前
用途:バリデーション前に属性値を微調整したい場合など

after_validation

タイミング:バリデーションが行われた直後
用途:バリデーションが成功したか否かにかかわらず実行したい処理がある場合

before_save

タイミング:バリデーションに成功し、オブジェクトがDBに保存される直前
用途:INSERTとUPDATEのどちらでも実行したい処理がある場合

around_save

タイミング:DBが更新されている最中

before_create/before_update

タイミング:before_saveの後
用途:INSERTの場合のみ、あるいはUPDATEの場合のみ実行したい処理がある場合

around_create/around_update

タイミング:DBが更新されている最中
用途:INSERTとUPDATEのどちらでも実行したい処理がある場合

after_create/after_update

タイミング:オブジェクトが保存された直後
用途:INSERTの場合のみ、あるいはUPDATEの場合のみ実行したい処理がある場合

after_save

タイミング:after_create/after_updateの直後
用途:保存されたオブジェクトの関連オブジェクトを操作したい場合など

after_commit

タイミング:after_saveの後(DBにCOMMITされた後)

after_rollback

タイミング:バリデーションエラーやSQL実行時にエラーが発生した後
用途:トランザクションが失敗した理由をログ出力したい時など

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0