🔊

Rails コールバックの順番

2022/02/08に公開

コールバックの順番

※以下の順番で続行される

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

・before_validation

バリデーションが行われる直前で実行

・after_validation

バリデーションが行われた直後に実行

・before_save

バリデーションに成功し、オブジェクトが保存される直前で実行
オブジェクトの保存、更新(INSERTやUPDATE)時に実行される

・before_create / before_update

before_saveの後に実行
・オブジェクトが保存(INSERT)されるとき「before_create」が実行される
・オブジェクトが更新(UPDATE)されるとき「before_update」が実行される

・after_create / after_update

after_saveの直前に実行
・オブジェクトが保存(INSERT)された直後「after_create」が実行される
・オブジェクトが更新(UPDATE)された直後「after_update」が実行される

・after_save

after_create、after_update の直後(COMMITの直前)に実行

・after_commit

after_save後(COMMIT直後)に実行

・after_rollback

バリデーションエラーやSQL実行エラー時に実行

Discussion