在gem中使用url_for

3

我正在编写一个gem,其中包含一些视图,在其中一个视图中,我需要使用link_to方法,该方法依赖于url_for方法。这两个方法默认情况下都不可用,因此我尝试包含所需的模块。

include ActionView::Helpers
include ActionDispatch::Routing
include Rails.application.routes.url_helpers

由于Rails.application为空,因此我无法获取路由和包含的url助手函数,导致某些功能无法正常工作。我也找到了这种方式,但我不喜欢它,因为它很快而且很随意。我希望在初始化之后将模块包含进来,以便可以访问路由。有没有办法解决这种情况?


你尝试直接包含 ActionView::Helpers::UrlHelper 了吗? - Florian
是的,但它没有帮助到任何事情:NoMethodError: undefined method url_for' for main:Object`。 - davidb
如果您通过ActionView::Helpers::UrlHelper.link_to调用link_to方法会怎样? - Jaap Haagmans
当模块未被包含时,那样做是行不通的。 - davidb
1个回答

2

我解决了这个问题。不需要包含模块。这段代码在控制台上无法工作,因为Rails环境没有完全加载,但是当我启动应用程序时它可以正常工作。之前没有想到过这一点,只是一直卡在控制台无法工作的地方。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接