Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中更改浏览器URL_Ruby On Rails_Ruby On Rails 4_Routing_Request_Rails Routing - Fatal编程技术网

Ruby on rails 在Rails中更改浏览器URL

Ruby on rails 在Rails中更改浏览器URL,ruby-on-rails,ruby-on-rails-4,routing,request,rails-routing,Ruby On Rails,Ruby On Rails 4,Routing,Request,Rails Routing,有没有办法更改请求的浏览器URL? 假设我有一个'/articles/foo-bar',我需要将其更改为'/articles/foo-bar' 我尝试了路由约束并更改了请求.path\u info,但没有成功。我成功更改了参数,但未反映在浏览器URL中 PS:我想在整个应用程序的浏览器URL中将“-”替换为“-” 编辑: 路线:get'brands/:name-:id/articles',至:'brands#articles' 此处可以动态更改名称。如果名称中的破折号应替换为下划线。您可以在模型

有没有办法更改请求的浏览器URL? 假设我有一个
'/articles/foo-bar'
,我需要将其更改为
'/articles/foo-bar'

我尝试了路由约束并更改了
请求.path\u info
,但没有成功。我成功更改了参数,但未反映在浏览器URL中

PS:我想在整个应用程序的浏览器URL中将“-”替换为“-”

编辑:

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


此处可以动态更改
名称
。如果名称中的破折号应替换为下划线。

您可以在模型上使用to_params方法 请检查这个

你想要
match'/articles/foo_bar',:to=>“articles#some_method_name',:via=>:post或:get
@Abhi不,只要浏览器URL中有破折号,我就想将破折号改为下划线(比如使用gsub)。和
'/articles/foo_bar'
'/articles/foo bar'
已重定向到同一控制器的操作。所以我只想更改浏览器URL。据我所知,您需要
http://something/articles/foo_bar
而不是
http://something/articles/foo-bar
。因此,对于这一点,您可以尝试自定义路由,正如我在上面所建议的,这个foo条是动态的。我添加了有问题的路线。请检查。检查是否有帮助