Railsガイド6.0読み直す ~4章 Active Record マイグレーション~
3章は上記
Railsガイド6.0読み直す ~3章 Active Record マイグレーション~ - ブシトラの日記
読んでいく。
1 オブジェクトのライフサイクル
コールバックは、オブジェクトの状態が切り替わる「前」または「後」にロジックをトリガします。
ライフサイクルっていう考え方か
2 コールバックの概要
after_validation :set_location, on: [ :create, :update ]
on あんまり見たことなかった
3 利用可能なコールバック
3.1 オブジェクトの作成
before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback
3.2 オブジェクトの更新
before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
after_commit/after_rollback
3.3 オブジェクトのdestroy
before_destroy
around_destroy
after_destroy
after_commit/after_rollback
こう見ると多いな
after_saveは after_createとafter_updateの後に発動するのね
after_touch 初めて見た
4 コールバックの実行
touchとtoggleは所見
5 コールバックをスキップする
コールバックをうかつにバイパスすると、データの不整合が発生する可能性があります。
使うときは気をつける
6 コールバックの停止
コールバックで処理を停止したいときは throw :abort
します。
7 リレーションシップのコールバック
特になし
8 条件付きコールバック
Procつきのはむずいよね
before_save :normalize_card_number, if: Proc.new { paid_with_card? }
9 コールバッククラス
特になし
10 トランザクションコールバック
特になし
履歴作るときとかよく使うが、困った時にもどるのが一番よさそう(ブログの意味w)