有这条路线:
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_for
或foo_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
如果没有修补轨道,有没有办法解决这个问题?
不要向路径传递字符串,而是给它一个数组。
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)
我唯一能找到此记录的地方是在这张票中。