[Rails] 預設不載入所有 helper
在 Rails 裡,我們如果在 UsersHelper
裡定義一個 method
在 ItemsController
的 view 裡也可以使用,Rails 預設已經幫我們載入了所有 helper
不過這樣在某些情境下,可能會造成困擾
例如有好幾個 helper,裡面都有相同名稱的 method
這樣在使用的時候,就沒辦法指定所要使用的是哪隻 helper
除非在 method name 加上一些 prefix
調整 helper 載入設定
如果遇到上述情境,可以在 Rails 的 config 檔裡面
將預設載入所有 helper 的設定調整為 false
# config/application.rb
config.action_controller.include_all_helpers = false
這樣一來 Admin::UsersController
的 view 就只有 include Admin::UsersHelper
不過 ApplicationHelper
、Admin::BaseHelper
還是全域載入的
所以如果有繼承 Admin::BaseController
的 controller,那它的 view 就可以使用 Admin::BaseHelper
的 method
另外,如果我們定義了一個 LayoutHelper
,它是沒有被 include 的
可以將它 include 在 ApplicationHelper
內,這樣 LayoutHelper
也會變成全域的 helper