Active Record コールバック - Railsガイド
コールバックとは
「オブジェクトが、こんな状態になったらこのメソッドを呼び出してねー」と設定するときのメソッドのことをコールバックと呼ぶ。バリデーションもコールバックのひとつ。
Active Recordオブジェクトが作成/保存/更新/削除/検証/データベースからの読み込み、などのイベント発生時に常に実行されるコードを書くことができる。
before_destroy
は注意
before_destroy
コールバックは、確実に実行するためdependent: :destroy
よりも前に配置するか、prepend: true
オプションを使う。
before_destory の prepend 指定について - アクトインディ開発者ブログ
コールバックをスキップするメソッドに注意すべし
以下メソッドはコールバックをスキップするので注意。
- decrement!
- decrement_counter
- delete
- delete_all
- increment!
- increment_counter
- update_column
- update_columns
- update_all
- update_counters
その他
- 使いまわしたいコールバックはコールバッククラスとして作成できる
- キューについて学んだ