2013-07-01 85 views
2

我工作的一個Ruby寶石(針對軌道4),我希望能夠使用的URL傭工它。所以我嘗試加入include Rails.application.routes.url_helpers,但它導致「未定義的方法」路線爲零:NilClass(NoMethodError)。「軌道4包括零Rails.application.routes.url_helper未定義的方法途徑:NilClass

我不清楚,爲什麼它這樣做,因爲我在控制檯中測試過,當我把它有它就好了。

類和模塊是簡單的只是:

module DynamicMenu 
    class Base 
    include Rails.application.routes.url_helpers 
    def get_menu_links 
     @links 
    end 
    private 

    def define_menu_links(args) 
    @links = args 
    end 
    end 
end 

關於如何解決此問題的任何想法?我試過包括不同的模塊,比如ActionView :: Helpers,但是這似乎也不起作用。

回答

0

做到這一點的一種方法,雖然可能不是最好的方法是使用includedmethod_missing。當然,這是假設你是在ActionViewActionController

像這樣的東西應該做OK:

module DynamicMenu 

    def included(base) 
     @parent = base 
    end 

    def method_missing method, *args 
     super unless @parent.methods.index method 
     @parent.send(method,args) 
    end 

end 
相關問題