helper_method(*methods) public

Declare a controller method as a helper. For example, the following makes the current_user and logged_in? controller methods available to the view:

class ApplicationController  < ActionController ::Base
 helper_method  :current_user, :logged_in?
 private
 def current_user
 @current_user ||= User .find_by(id: session[:user])
 end
 def logged_in?
 current_user != nil
 end
end

In a view:

<% if logged_in? -%>Welcome, <%= current_user.name %><% end -%>

Parameters

  • method[, method] - A name or names of a method on the controller to be made available on the view.

Show source
# File actionpack/lib/abstract_controller/helpers.rb, line 140
 def helper_method(*methods)
 methods.flatten!
 self._helper_methods += methods
 location = caller_locations(1, 1).first
 file, line = location.path, location.lineno
 methods.each do |method|
 # def current_user(*args, &block)
 # controller.send(:'current_user', *args, &block)
 # end
 _helpers_for_modification.class_eval <<~ruby_eval.lines.map(&:strip).join(";"), file, line
 def #{method}(*args, &block)
 controller.send(:'#{method}', *args, &block)
 end
 ruby2_keywords(:'#{method}')
 ruby_eval
 end
 end
Register or log in to add new notes.

AltStyle によって変換されたページ (->オリジナル) /