2014-01-26 66 views
0

这项工作应该如何?从控制器调用辅助方法时没有方法错误

module SessionsHelper 
    def foobar 
     "hello" 
    end 
end 

class SessionsController < ApplicationController 
    def new 
     foobar 
    end 
end 

当我访问一个去session#new的URI我得到一个undefined method or variable 'foobar'错误。我认为辅助模块被自动包含在他们各自的控制器中?

回答

0

好了,包括从控制器模块做到了:

module SessionsHelper 
    def foobar 
     "hello" 
    end 
end 

class SessionsController < ApplicationController 
    include SessionsHelper 

    def new 
     foobar 
    end 
end 

我认为这种行为是默认的轨道,但?相关的帮助模块是否包含在他们的控制器中?

+0

默认助手包含在视图中。如果你想在控制器中使用它们,你必须包含一个模块。 – Jacek

+0

啊,够公平的,这确实解释了:P ...我认为模块是抽象的控制器逻辑,抽象的视图逻辑drapers。 – Starkers