rails concernの使い方

2021.04.04 Ruby on Rails

Railsのconcernについてまとめました。共通のスコープやメソッドをまとめる方法と、application_controllerのエラーハンドルをconcernに切り出して見やすくする例を紹介します。

初めに

railsのconcernについてちょっとまとめたもの

concernとは

concernとはrailsの共通部分をまとめる使い方が一般的で、userモデルでもpostモデルでも使うスコープやメソッドがあった場合にまとめられます。models/concernsにday.rbを作り、module Day で extend ActiveSupport::Concern、included do 内に scope を書きます。user.rb と post.rb で include Day とすれば使えます。moduleの名前はファイル名と同じにします。

ほかの使い方

モデルやapplication_controllerの中身が多くなりすぎて見づらくなる場合、処理をまとめてconcernに入れます。controllers/concernsにerror_handle.rbを作り、rescue_fromやエラー用のrenderメソッドをmodule ErrorHandleとして切り出し、ApplicationControllerでincludeすれば中身がすっきりします。freeze_allのような共通メソッドもconcernにまとめられます。

システム開発に興味をお持ちの方は、お気軽にご相談ください。初回のご相談は無料です。

相談する

ブログ一覧へ