2014-01-26 57 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