method
helper_method
Ruby on Rails latest stable (v7.1.3.2)
-
0 notes -
Class: AbstractController ::Helpers ::ClassMethods
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0 (0)
- 3.0.9 (-38)
- 3.1.0 (0)
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (-2)
- 4.1.8 (0)
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (18)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (25)
- 7.1.3.4 (0)
- 7.2.3 (23)
- 8.0.0 (0)
- 8.1.1 (0)
- What's this?
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