ブシトラの日記

エンジニア1年生の雑多記事

Railsガイド6.0読み直す ~4章 Active Record マイグレーション~

3章は上記

 

Railsガイド6.0読み直す ~3章 Active Record マイグレーション~ - ブシトラの日記

 

railsguides.jp

読んでいく。

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)