2013-03-08 68 views
1

我正在编写一个包含一些视图的gem,在其中一个视图中我需要使用link_to方法,这个方法取决于url_for方法。两者都是默认不可用的,所以我想包括所需的模块在gem中使用url_for

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

什么行不通的,因为Rails.applicationnil,所以我不能得到的路线和所包含的网址助手。我也发现this的方法,但我不喜欢它,因为它的快速和肮脏。我希望在init之后包含模块,以便我可以访问路由。有什么办法可以安排这种安排吗?

+0

你是否尝试直接包含'ActionView :: Helpers :: UrlHelper'? – Florian 2013-03-08 13:21:11

+0

是的,但它并没有帮助一个东西:'NoMethodError:未定义的方法'url_for'main:Object' – davidb 2013-03-08 13:24:50

+0

如果你通过'ActionView :: Helpers :: UrlHelper.link_to'调用link_to方法怎么办? – 2013-03-08 14:35:26

回答

0

我解决了它。没有必要包含这些模块。这段代码在控制台上不起作用,因为rails环境没有完全加载,但是当我启动应用程序时它工作正常。到现在为止没有考虑过,......只是不停地在控制台中不起作用。