コールバック

参考:

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

参考:

フィルタ | Rails ガイド [公式]

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]

_normalize_callback_options – 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::Rollbackraise する。

参考:

ActiveRecord のコールバックの順序・コールバック内のロールバック処理について | Hack Your Design!

before_xxx で false を返すと処理を停止するが、 nil を返すと続行する – Qiita

after_initialize / after_find

参考:

after_initialize と after_find | Rails ガイド [公式]

コールバックを共通化する

参考:

A concern that contains a skip_before_action does not skip the before_action of a parent’s concern · Issue #18529 · rails/rails – GitHub

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

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です