コールバックの種類
before_validation ##検証前の正規化
after_validation ##検証結果(エラーメッセージ)の加工
# ひとまとまり⬇︎
before_save
before_create ## saveのために裏側で行いたいデータ準備を行う(ある属性の値に従ってある関連(後述を作成するなど) 検証エラーを出してもユーザーにはどうすることもできない状態異常を防ぐために例外を出す
before_update
# ひとまとまり ⬇︎
after_save
after_create ## そのモデルの状態に応じて他のモデルの状態を変えるなど、連動した挙動を実現する。 検証エラーを出してもユーザーにはどうすることもできない状態以上を防ぐために例外を出す
after_update
before_destroy ## 削除してOKかをチェックし、ダメなら例外を出すなどして防ぐ
after_destroy ## そのモデルの削除に応じて他のモデルの状態を変えるといった連動した挙動を実現する