Ruby on rails Rails路由是否改变了它处理参数[:path]的方式?

Ruby on rails Rails路由是否改变了它处理参数[:path]的方式?,ruby-on-rails,ruby,ruby-on-rails-3.2,routing,rails-routing,Ruby On Rails,Ruby,Ruby On Rails 3.2,Routing,Rails Routing,我最近将一个站点从Ruby 1.8.7升级到Ruby 1.9.2,并从Rails 3.0.x升级到3.2.x。我注意到我的一些遗留URL不再得到正确处理,我想诊断这个问题 这是我注意到的 http://myapp.com/links/oldlink.html在我的旧应用程序中,提供了/links/oldlink.html的参数[:path],但现在提供了链接/oldlink。所以它删除了前导的正斜杠和文件扩展名 有人能帮我弄清楚这是怎么回事吗?当然,我可以手动更改数据库中的遗留字符串,以同时删除

我最近将一个站点从Ruby 1.8.7升级到Ruby 1.9.2,并从Rails 3.0.x升级到3.2.x。我注意到我的一些遗留URL不再得到正确处理,我想诊断这个问题

这是我注意到的

http://myapp.com/links/oldlink.html
在我的旧应用程序中,提供了
/links/oldlink.html
参数[:path]
,但现在提供了
链接/oldlink
。所以它删除了前导的正斜杠和文件扩展名

有人能帮我弄清楚这是怎么回事吗?当然,我可以手动更改数据库中的遗留字符串,以同时删除它们的前斜杠和文件扩展名,但这似乎是一个很难解决的解决方案,我想确保我了解导致Rails路由行为发生这种更改的基本原则


谢谢

您应该在routes.rb中尝试此功能

match '/foo', :to => redirect('/foo.html')

这不是答案,而是解决方法:
request.fullpath.split(“?”[0]
将返回不带参数的路径