【Rails】なんか変なとこのヘルパー読み込んでるんだけど??〜config.action_controller.include_all_helpers〜
こんにちは、マリンです。
昨日こんなことがありました。
「staffのネームスペースでuserのhelper読み込んでるんです・・・」
その時に教えていただいた対処法をご紹介します。
概要
app/helpers/user/pages_helper.rbに
hoge
と言うメソッドがあった。同じ処理を行いたいのでapp/helpers/staff/pages_helper.rbにも
hoge
と言うメソッドを書いた。app/controllers/staff/staffs_controller.rbからネームスペースstaffの
hoge
を呼び出した。(つもり)なぜかネームスペースuserの
hoge
が呼ばれてしまう!?
こういった経緯で自己解決できずに相談しました。
原因
Railsのcontrollerでは、デフォルトで全部のhelperを読み込むようになっているそうです。
なので意図しないファイルを読み込んでいる場合は、
キチンとネームスペース内のものだけを読み込むように設定しないといけないとのこと。
対処方法
config/application.rbファイルに以下を記述します。
config.action_controller.include_all_helpers = false
これはデフォルトで全てのヘルパーを読み込むようになっているのを、
「やめて〜〜!!」
と言っています。
これでネームスペースに則ったヘルパーのみを読み込んでくれるようになるということです。
基礎を勉強するだけではわからないこと、
気付けなかったこと、ぶち当たらなかった壁をたくさん経験できて、
やはり一歩踏み出して良かったな。
と感じる今日この頃です。