method

helper_method

rails latest stable - Class: ActionController::Helpers::ClassMethods

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v2.3.8) is shown here.

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

AKovtunov ยท Sep 18, 2014

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.