コールバック
参考:
Active Record コールバック | Rails ガイド [公式]
ActiveRecord::Callbacks
参考:
ActiveRecord::Callbacks | Ruby on Rails API [Official]
rails/callbacks.rb at 5-2-stable · rails/rails – GitHub
AbstractController::Callbacks
参考:
AbstractController::Callbacks::ClassMethods | Ruby on Rails API [Official]
rails/callbacks.rb at 5-2-stable · rails/rails – GitHub
使い方
参考:
Rails のコールバックまとめ | TECHSCORE BLOG
Active レコードのコールバック | Rails 日本語ドキュメント (Ruby STUDIO)
Rails で before_validation コールバックを使う時の落とし穴 | ぼくたち宇宙人
Rails の before_save で値に false を設定する時の注意 | ワシはワシが育てる
ActiveRecord のコールバックが呼ばれる順番まとめ | TechRacho
ActiveRecord のコールバック早見表 | 酒と涙とRubyとRailsと
Rails で一時的に before_save を skip | hello-world.jp.net
書き方
参考:
複雑な動作をする Rails のコールバックを書きたい場合に – Qiita
Proc や lambda の使い所ってどんなところ? · Issue #1049 · yochiyochirb/meetups – GitHub
new lambda literal syntax for activerecord callbacks – Stack Overflow
before_action / after_action / around_action
参考:
AbstractController::Callbacks::ClassMethods | Ruby on Rails API [Official]
before_action – AbstractController::Callbacks::ClassMethods | Ruby on Rails API [Official]
after_action – AbstractController::Callbacks::ClassMethods | Ruby on Rails API [Official]
around_action – AbstractController::Callbacks::ClassMethods | Ruby on Rails API [Official]
_insert_callbacks – AbstractController::Callbacks::ClassMethods | Ruby on Rails API [Official]
rails/callbacks.rb at 5-2-stable · rails/rails – GitHub
変更前後の値を取得する
参考:
Rails でモデルの変更前後の値 | 酒と涙とRubyとRailsと
コールバックの中からロールバックする
before_*
からロールバックするには、false
を返す。
after_*
からロールバックするには、ActiveRecord::Rollback
を raise
する。
参考:
ActiveRecord のコールバックの順序・コールバック内のロールバック処理について | Hack Your Design!
before_xxx で false を返すと処理を停止するが、 nil を返すと続行する – Qiita
after_initialize / after_find
参考:
after_initialize と after_find | Rails ガイド [公式]
コールバックを共通化する
参考:
Controller before_action callbacks are not appended · Issue #20687 · rails/rails – GitHub
Elegant way to abstract before_actions across controllers? – Stack Overflow
ActiveSupport::Callbacks
参考:
ActiveSupport::Callbacks | Ruby on Rails API [Official]
ActiveSupport::Callbacks::ClassMethods | Ruby on Rails API [Official]
rails/callbacks.rb at v5.2.3 · rails/rails – GitHub
run_callbacks – rails/callbacks.rb at v5.2.3 · rails/rails – GitHub
define_callbacks – rails/callbacks.rb at v5.2.3 · rails/rails – GitHub
__update_callbacks – rails/callbacks.rb at v5.2.3 · rails/rails – GitHub
ActiveSupport::Callbacks::CallTemplate
参考:
CallTemplate – rails/callbacks.rb at v5.2.3 · rails/rails – GitHub
ActiveSupport::Callbacks::CallbackSequence
参考:
CallbackSequence – rails/callbacks.rb at v5.2.3 · rails/rails – GitHub