O método helper_method
é compartilhar explicitamente alguns métodos definidos no controlador para torná-los disponíveis para a visualização. Isso é usado para qualquer método que você precise acessar dos controladores e dos auxiliares / visualizações (os métodos auxiliares padrão não estão disponíveis nos controladores). por exemplo, caso de uso comum:
#application_controller.rb
def current_user
@current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user
o helper
método, por outro lado, é importar um auxiliar inteiro para as visualizações fornecidas pelo controlador (e seus controladores herdados). O que isso significa está fazendo
# application_controller.rb
helper :all
Para Rails> 3.1
# application.rb
config.action_controller.include_all_helpers = true
# This is the default anyway, but worth knowing how to turn it off
disponibiliza todos os módulos auxiliares para todas as visualizações (pelo menos para todos os controladores herdados de application_controller.
# home_controller.rb
helper UserHelper
disponibiliza os métodos UserHelper para visualizações de ações do controlador doméstico. Isso é equivalente a fazer:
# HomeHelper
include UserHelper