2008-09-29 29 views
5

有了這個路線:如何防止link_to在Rails中的URL參數中出現斜線?

map.foo 'foo/*path', :controller => 'foo', :action => 'index' 

我對link_to呼叫

link_to "Foo", :controller => 'foo', :path => 'bar/baz' 
# <a href="/foo/bar%2Fbaz">Foo</a> 

調用url_forfoo_url直接,即使:escape => false結果如下,給我同樣的網址:

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

我想要得到的網址爲:/foo/bar/baz

有沒有解決這個問題的方法沒有修補欄杆?

+0

哎呀原來rubyonrails不是最好的標籤,道歉。 – 2008-09-29 22:54:49

回答

4

而不是傳遞一個字符串的路徑,給它一個數組。

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

如果你沒有在你的路由文件的路徑,同樣的link_to反而會創造這樣的:

# <a href="/foo?path[]=bar&path[]=baz">Foo</a> 

唯一的地方,我能找到這個文件是this ticket

-3

爲什麼你需要生成具有該路徑的URL的任何原因?

只需定義一個額外的路由來覆蓋該URL就會更清潔。

+0

請使用評論功能進行澄清等;-) – webmat 2008-09-30 00:49:07

相關問題