2012-01-18 94 views
29

是否可以從控制器調用幫助器方法?如果是的話,如何在Rails 3中做到這一點?從Rails 3控制器調用幫助器方法

+6

是的,這是可能的。你可以在這裏找到答案: http://stackoverflow.com/questions/453762/nomethoderror-when-trying-to-invoke-helper-method-from-rails-controller – alexkv 2012-01-18 11:05:21

+0

請標記「view_context.some_helper_method」作爲答案謝謝您。 – Vinozio 2014-05-29 19:21:09

回答

36
view_context.some_helper_method 
+1

這是Rails 3最正確的答案。 – 2014-01-19 11:44:35

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 
相關問題