flyingL123
flyingL123

Reputation: 8096

Using helper in controller in Rails 4.2.4

I'm confused by the rails documentation that I'm reading here. In particular, this sentence:

By default, each controller will include all helpers. These helpers are only accessible on the controller through .helpers

What is this .helpers that it is referring to? I have a helper defined in app/helpers/areas_helper.rb:

module AreasHelper
  def my_helper
    puts "Test from helper"
  end
end

I would like to use this helper in app/controllers/locations_controller.rb:

class LocationsController < ApplicationController
  def show
    helpers.my_helper
  end
end

However, I get a method undefined error. How is this .helpers supposed to be used?

I know there are other ways to get access to helpers in controllers, but I'm specifically asking about this piece of documentation and what it's trying to say.

Upvotes: 10

Views: 8328

Answers (2)

Abhishek Jain
Abhishek Jain

Reputation: 238

This feature was introduced in Rails 5 with following PR https://github.com/rails/rails/pull/24866

So, we can use this feature from Rails 5 and onwards and not in Rails 4.x.

Upvotes: 5

Richard Peck
Richard Peck

Reputation: 76784

You're meant to include the helper class in the controller:

#app/controllers/locations_controller.rb
class LocationsController < ApplicationController
   include AreasHelper

   def show
      my_helper
   end
end

Upvotes: 9

Related Questions