【问题标题】:Alter the browser URL in Rails在 Rails 中更改浏览器 URL
【发布时间】:2016-01-07 05:50:45
【问题描述】:

有什么方法可以改变请求的浏览器 URL 吗? 假设我有一个'/articles/foo-bar',我需要将其更改为'/articles/foo_bar'

我尝试了路由约束并更改了request.path_info,但没有成功。我成功更改了参数,但没有反映在浏览器 URL 中。

PS:我想在整个App的浏览器URL中将'-'替换为'_'。

已编辑:

路线:get 'brands/:name-:id/articles', to: 'brands#articles'

这里name可以动态改变。如果name 中的破折号应替换为下划线。

【问题讨论】:

  • 你想要match '/articles/foo_bar', :to => 'articles#some_method_name', :via => :post or :get这样的东西
  • @Abhi 不,只要浏览器 URL 中存在破折号,我想将破折号更改为下划线(例如使用 gsub)。 '/articles/foo_bar''/articles/foo-bar' 已经重定向到同一个控制器的操作。所以我只想更改浏览器网址。
  • 据我了解,您需要http://something/articles/foo_bar 而不是http://something/articles/foo-bar。因此,为此,您可以按照我上面的建议尝试自定义路由
  • 这个 foo-bar 是动态的。我已经添加了有问题的路线。请检查。
  • 检查this是否有帮助

标签: ruby-on-rails ruby-on-rails-4 routing request rails-routing


【解决方案1】:

您可以在模型上使用 to_params 方法 请检查这个 http://blog.teamtreehouse.com/creating-vanity-urls-in-rails

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多