2019/04/13

Railsのコールバック

before_save

  • before_saveコールバックがある。
  • Active Recordはオブジェクト(ここでいうオブジェクトってなんだ)のライフサイクル(これは何?)へのフックを提供している
  • コールバックは、オブジェクトの状態が切り替わる前後にロジックをトリガする。

コールバック

  • コールバックとは、オブジェクトのライフサイクル期間における特定の瞬間に呼び出されるメソッドのこと
  • コールバックを利用することで、Active Recordオブジェクトが作成/保存/更新/削除/検証/データベースからの読み込み、などのイベント発生時に常に実行されるコードを書くことができる

:on オプション

  • before_saveはオブジェクトの作成、更新時に呼び出される。
  • デフォルトがon: [:create :update]の状態だと思われる(要検証)
  • 今回書いている処理ではscheduleモデルがcreateされるときのみ動かしたいメソッドなのでon: %i(create)を指定
    • 見当違いの書き方(on: :toggleと、controllerにある処理を書いていた)のに動いていたのは、on以下がおかしいときはただ無視されるからだと思われる(いちおうでたらめメソッド書いて動いたが、updateを含めて要検証