method

helper_method

Importance_2
v2.2.1 - Show latest stable - 1 note - 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 -%>
Show source
Register or log in to add new notes.
September 18, 2014 - (<= v4.0.2)
0 thanks

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.