method
helper_method
rails latest stable - Class:
ActionController::Helpers::ClassMethods
helper_method(*methods)public
Declare a controller method as a helper. For example, the following makes the current_user controller method available to the view:
class ApplicationController < ActionController::Base helper_method :current_user, :logged_in? 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 -%>
1Note
Only in ApplicationController
Seems like we can use helper_method only in ApplicationController. Even if we will create child controller, methods that will be created in child and listed in child's helper_method will not be accessible from the view.
For example, we have
class SystemController < ApplicationController def important_method "I am important!" end end and class BookController < SystemController def index end end And calling important_method from Book's index view will raise an NoMethodError.