【问题标题】:How can I load UrlHelper and the routes in the Rails?如何在 Rails 中加载 UrlHelper 和路由?
【发布时间】:2012-01-12 08:12:12
【问题描述】:

我想在 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>

我在这里做错了什么?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    按照建议,您应该将app 对象用于路由部分,您应该将helper 对象用于link_to。 使用控制台时无需通过 Ruby 包含任何帮助程序:

    helper.link_to "foo", app.ponies_path
    

    【讨论】:

    • 只为将来:如果需要在控制台外访问helper,可以定义为:helper = ApplicationController.helpers
    【解决方案2】:

    使用应用对象。

    > link_to "foo", app.ponies_path
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多