调用Rails.application.routes.generate()或Rails.application.routes.recognize_path()时出现'RuntimeError:route set not finalized'

时间:2012-02-15 10:08:59

标签: ruby-on-rails routes

我在我的应用程序中使用Rails.application.routes.generate()Rails.application.routes.recognize_path()来使用Rails路由表反汇编和生成URL。我从来没有遇到过使用Rails 2.3.x系列的问题,但是由于Rails 3(特别是3.1.3)我在调用这些命令时遇到了以下错误

RuntimeError: route set not finalized

两个问题:

  • 为什么?我得到了这个 - 我的应用程序启动并运行并处理其他请求。为什么现在没有最终确定路线?
  • 要解决此错误,我调用Rails.application.routes.finalize!在调用这些方法之前,因为它似乎工作。这样做会有什么影响吗?

1 个答案:

答案 0 :(得分:0)

在Rails 3中,您不使用此技术。在使用named_route

之后,您需要包含Rails.application.routes.url_helpers
class User < ActiveRecord::Base
  include Rails.application.routes.url_helpers

  def my_own_url
    user_url(self)
  end
end