升级到 Rails 3.1 后,没有路由匹配 [GET]“/reporting/from_perl/0”
No route matches [GET] "/reporting/from_perl/0" after upgrading to Rails 3.1
我正在逐步升级一个非常旧的 rails 应用程序。目前我卡在 Rails 3.1。我完成了升级的所有相关步骤。现在我不想使用资产,所以我在 config/application.rb.
中禁用了它
一旦将我的 Gemfile 中的 rails 版本从 3.0.20 更改为 3.1.12,我就会收到无路由匹配错误。我还将所有升级步骤改回 3.0 以查看导致错误的部分,但只有当我更改 Gemfile 中的行时才会发生这种情况。
我的routes.rb:
Wawi::Application.routes.draw do
match ":controller(/:action(/:id(.:format)))"
end
如果您需要更多代码,请告诉我。
rake 路线:
/:controller(/:action(/:id(.:format)))
(和警告:循环参数引用)
也许另一个有用的提示:该操作是应用程序控制器的一部分。
你是在你的 url 助手中对你的对象调用 Object#to_i 吗?可能是对象为 nil 并且 nil.to_i 始终为 0。还要注意,rails primary id 从 1 开始。
所以你应该试试 运行 rake routes:
ruby bundle exec rake routes
在 运行 该命令之后,您应该会看到根据您的路由文件可用的 url 列表。
感谢一位同事,我找到了解决方案:
在 application_controller.rb 中,session :session_key => '...'
必须更改为 Rails.application.config.session_options[:key] = '...'
。
我正在逐步升级一个非常旧的 rails 应用程序。目前我卡在 Rails 3.1。我完成了升级的所有相关步骤。现在我不想使用资产,所以我在 config/application.rb.
中禁用了它一旦将我的 Gemfile 中的 rails 版本从 3.0.20 更改为 3.1.12,我就会收到无路由匹配错误。我还将所有升级步骤改回 3.0 以查看导致错误的部分,但只有当我更改 Gemfile 中的行时才会发生这种情况。
我的routes.rb:
Wawi::Application.routes.draw do
match ":controller(/:action(/:id(.:format)))"
end
如果您需要更多代码,请告诉我。
rake 路线:
/:controller(/:action(/:id(.:format)))
(和警告:循环参数引用)
也许另一个有用的提示:该操作是应用程序控制器的一部分。
你是在你的 url 助手中对你的对象调用 Object#to_i 吗?可能是对象为 nil 并且 nil.to_i 始终为 0。还要注意,rails primary id 从 1 开始。
所以你应该试试 运行 rake routes:
ruby bundle exec rake routes
在 运行 该命令之后,您应该会看到根据您的路由文件可用的 url 列表。
感谢一位同事,我找到了解决方案:
在 application_controller.rb 中,session :session_key => '...'
必须更改为 Rails.application.config.session_options[:key] = '...'
。