Rails4でconcernsを使ってみる
Railsでロジック部分をモデルに書くようにしているとモデルがFatになってきます。
Rails4では、そういう場合にconcernsにコードをうまく分割してモデルをスリムにすることができます。
この方法はRails3でも出来るのですが、Rails4からプロジェクト生成時にconcernsディレクトリがデフォルトで生成されます。分割したい場合はこちらへ、という意図を感じます。
では感じのコードです。Userモデルのあるインスタンスメソッドとクラスメソッドを分離するとします。
concerns以下にTestModuleという名前で切り出すとしましょ
module TestModule extend ActiveSupport::Concern def hello end module ClassMethods def select_food end end end
で、userモデルの方では
class User include TestModule end
以上になります。Userモデルが随分すっきりしましたね。