method
helper_method
rails latest stable - Class:
AbstractController ::Helpers ::ClassMethods
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.
# 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