LoginSignup
13
5

More than 5 years have passed since last update.

callbackに登録されているメソッド一覧を確認する方法

Last updated at Posted at 2017-04-18

よくある問題

モデルのコードが多い場合やconcernをいっぱい使っていると、callbackの処理を追っかけるのも一苦労。
だからと言って、after_ や before_ のようなキーワードで検索したりすのもの面倒。

そんなお困りのあなたに!

解決策

rails consoleで確認できます。

例えば、Entryモデルの after_save に登録されている callback 一覧を確認したい場合

$ bundle exec rails console

>> Entry._save_callbacks.select { |cb| cb.kind.eql? :after }.map { |cb| puts cb.filter }

update_search_text
update_activity

update_search_text と update_activity というメソッドが after_save のときに呼び出されていることがわかります。

同じような感じで before_save のものを確認したい場合は、モデル名の後とselectの中のフレーズを少し変更すればOK

Entry._save_callbacks.select { |cb| cb.kind.eql? :before }.map { |cb| puts cb.filter }

さらに after_update を確認したいなら

Entry._update_callbacks.select { |cb| cb.kind.eql? :after }.map { |cb| puts cb.filter }

こんな感じで簡単に調べることができます。

詳細はこちらでチェック!
Active Record Callbacks

13
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5