gpt4 book ai didi

ruby-on-rails - Rails 4 包括 Rails.application.routes.url_helper 未定义的方法路由为 nil :NilClass

转载 作者:行者123 更新时间:2023-12-04 03:47:06 26 4
gpt4 key购买 nike

我正在开发一个 Ruby gem(针对 Rails 4),我希望能够在其中使用 url 助手。所以我尝试添加 include Rails.application.routes.url_helpers,但它会导致“nil:NilClass (NoMethodError) 的未定义方法‘路由’。”

我不确定为什么它会这样做,因为我已经在控制台中进行了测试,当我将它包含在其中时它就可以正常工作。

类和模块很简单:

 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,但这似乎也不起作用。

最佳答案

一种方法(虽然可能不是最好的方法)是使用 includedmethod_missing。这当然是假设您在 ActionViewActionController

像这样应该可以:

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

关于ruby-on-rails - Rails 4 包括 Rails.application.routes.url_helper 未定义的方法路由为 nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17409325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com