如何防止link_to在Rails中的URL参数中转义斜杠?

kch*_*kch 5 ruby-on-rails

有这条路线:

map.foo 'foo/*path', :controller => 'foo', :action => 'index'
Run Code Online (Sandbox Code Playgroud)

我有以下link_to调用结果

link_to "Foo", :controller => 'foo', :path => 'bar/baz'
# <a href="/foo/bar%2Fbaz">Foo</a>
Run Code Online (Sandbox Code Playgroud)

直接打电话url_forfoo_url直接打电话:escape => false给我同样的网址:

foo_url(:path => 'bar/baz', :escape => false, :only_path => true)
# /foo/bar%2Fbaz
Run Code Online (Sandbox Code Playgroud)

我希望得到的网址是: /foo/bar/baz

如果没有修补轨道,有没有办法解决这个问题?

Gor*_*son 4

不要向路径传递字符串,而是给它一个数组。

link_to "Foo", :controller => 'foo', :path => %w(bar baz)
# <a href="/foo/bar/baz">Foo</a>
Run Code Online (Sandbox Code Playgroud)

如果您的路线文件中没有该路线,则相同的 link_to 将创建以下内容:

# <a href="/foo?path[]=bar&path[]=baz">Foo</a>
Run Code Online (Sandbox Code Playgroud)

我唯一能找到此记录的地方是在这张票中。