【问题标题】:Did Rails Routing change the way it handles the params[:path]?Rails Routing 是否改变了它处理 params[:path] 的方式?
【发布时间】:2013-07-31 18:12:04
【问题描述】:

我最近将一个网站从 Ruby 1.8.7 升级到 Ruby 1.9.2,从 Rails 3.0.x 升级到 3.2.x。我注意到我的一些旧版网址不再得到正确处理,因此想诊断一下问题。

这是我注意到的。

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

谁能帮我弄清楚这里发生了什么?当然,我可以手动更改数据库中的旧字符串以删除它们的正斜杠和文件扩展名,但这似乎是一个 hacky 解决方案,我想确保我了解导致 Rails 路由发生这种变化的基本原理行为。

谢谢!

【问题讨论】:

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

标签: ruby-on-rails ruby ruby-on-rails-3.2 routing rails-routing


【解决方案1】:

你应该在你的 routes.rb 中试试这个

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

【讨论】:

    猜你喜欢
    • 2018-09-06
    • 2020-02-22
    • 1970-01-01
    • 2013-11-03
    • 2017-09-16
    • 2021-02-14
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    相关资源
    最近更新 更多