maeshimaの日記

メモ書きです

before_filter系のメソッドの引数にオブジェクトを指定できる

ずっとメソッド名の指定しかしてないので忘れてた。

  • filter
  • before
  • after

のメソッドのどれか一つを実装しているオブジェクトを指定できるみたい。複数コントローラで共通のfilterを使う時に使えるとは思う。

現状はコントローラ毎に微妙に挙動を変えたかったりするのでapplication_controllerに挙動を書いて各コントローラでオーバライドしたりしてしまっている。いまいちなので変えたいけどこの方法で綺麗に出来ないかな?

→コントローラのオブジェクトを引数で持ってこれるのでなんとかできそう

→とはいえ、一つのフィルタのために一つクラス作るのは、フィルタが多いときにかえって複雑になっちゃうなー