我想在 PORO 中包含路由和 link_to
方法。在控制台中测试时,我遇到了这个:
如果我在没有路由助手的情况下包含 UrlHelper,一切似乎都可以正常工作:
ruby-1.9.3-rc1 :001 > Rails.version
=> "3.2.0.rc2"
ruby-1.9.3-rc1 :001 > include ActionView::Helpers::UrlHelper
=> Object
ruby-1.9.3-rc1 :002 > link_to "foo", Rails.application.routes.url_helpers.ponies_path
=> "<a href=\"/ponies\">foo</a>"
如果我包括路线:
ruby-1.9.3-rc1 :001 > include ActionView::Helpers::UrlHelper
ruby-1.9.3-rc1 :003 > include Rails.application.routes.url_helpers
=> Object
ruby-1.9.3-rc1 :004 > link_to "foo", ponies_path
我收到以下错误:
NameError: undefined local variable or method `controller' for #<ApplicationController:0x007fa1497ecc40>
我在这里做错了什么?
最佳答案
正如建议的那样,您应该将 app
对象用于路由部分,而您应该将 helper
对象用于 link_to。
使用控制台时无需通过 Ruby 包含任何帮助程序:
helper.link_to "foo", app.ponies_path
关于ruby-on-rails - 如何在 Rails 中加载 UrlHelper 和路由?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8831834/