2012-01-18 6 views
29

Можно ли вызвать вспомогательные методы из контроллера? Если да, как это сделать в Rails 3?Вызов вспомогательного метода из контроллера Rails 3

+6

Да, это возможно. Вы можете найти ответ: http://stackoverflow.com/questions/453762/nomethoderror-when-trying-to-invoke-helper-method-from-rails-controller – alexkv

+0

Пожалуйста, отметьте «view_context.some_helper_method» как ответ спасибо вы. – Vinozio

ответ

36
view_context.some_helper_method 
+1

Это правильный ответ для Rails 3. –

28

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

class FooHelper 
    def bar ... end 
end 

class QuxsController 
    include FooHelper 
end 

или

class QuxsController 
    private 
    def bar ... end 
    helper_method :bar 
end 
1

Это работает, если кто-то хочет использовать ApplicationHelper метод в других контроллерах или зрения просто добавить этот include ApplicationHelper Приводим потому что все контроллер происходит от ApplicationController.

class ApplicationController < ActionController::Base 
    protect_from_forgery  
    include ApplicationHelper 
end 
Смежные вопросы