2015-10-05 2 views
8

Я смущен рельсовой документацией, которую я читаю here. В частности, это предложение:Использование хелпера в контроллере в Rails 4.2.4

По умолчанию каждый контроллер будет включать в себя все помощники. Эти хелперы доступны только на контроллере через .helpers

Что это .helpers, что имеет в виду? У меня есть помощник, определенный в app/helpers/areas_helper.rb:

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

Я хотел бы использовать этот хелпер в app/controllers/locations_controller.rb:

class LocationsController < ApplicationController 
    def show 
    helpers.my_helper 
    end 
end 

Однако я получаю неопределенную ошибку методы. Как это должно использоваться .helpers?

Я знаю, что есть другие способы получить доступ к помощникам в контроллерах, но я специально спрашиваю об этой части документации и о том, что она пытается сказать.

+0

Я считаю, что ссылка на '.helpers' - встроенные помощники Rails, такие как' redirect_to' и т. Д. –

+0

Но что это значит. Где '.helpers' вступают в игру при использовании встроенного помощника Rails, например' redirect_to'? – flyingL123

+0

Tbh Не знаю. Я читаю об этом. Мой ответ верен, вот как мы используем пользовательские помощники в наших контроллерах - как для '.helpers', я смотрю на него –

ответ

7

Вы предназначены, чтобы включить вспомогательный класс в контроллере:

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

    def show 
     my_helper 
    end 
end 
+1

Если требуется несколько помощников, они могут быть разделены запятыми - '' 'include AreasHelper, AnotherHelper''' –

3

Эта функция была введена в Rails 5 со следующими PR https://github.com/rails/rails/pull/24866

Таким образом, мы можем использовать эту функцию из Rails 5 и далее, а не в Rails 4.x.

Смежные вопросы