【发布时间】: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