Rails

viewから使えるhelperはデフォルトでController名と同じやつ

More than 3 years have passed since last update.

controllerでは全部のhelperをincludeしているようですが、

viewではController名と同名のhelperしか読み込まないだそうな。

なので、


app/helpers/application_helper.rb

module ApplicationHelper

def common_helper_method
end
end


app/helpers/users_helper.rb

module UsersHelper

def user_helper_method
end
end

common_helper_methodは、ApplicationControllerを継承したどのControllerのViewからも使えるが、user_helper_methodUsersControllerのViewからしか使えない。

他のControllerのViewから使いたい場合は以下のようにする


app/controllers/others_controller.rb

class OthersController < ApplicationControlelr

helper Users
end

Rails4系ですべてのhelperがviewから読めるのを禁止する設定 - Qiitaを見る限り、config.action_controller.include_all_helpers = trueであれば、viewから全Helper読めるような感じするんですけど、どうなんだろう。