2010-02-04 48 views
1

當使用一個包羅萬象的路線網址都具有編碼爲%2F斜槓,這意味着我不能查找使用request.path爲什麼Rails將所有(splat)路由編碼爲斜槓?

map.document '*path', :controller => 'documents', :action => 'show' 

Page.find_by_permalink('/blog/my_first_post') # Record found 
Page.find_by_permalink('blog%2Fmy_first_post') # Record not found 

首先這是爲什麼編碼發生的記錄,其次是有沒有辦法把它關閉?

PS。我知道我可以在使用find之前解碼request.path,但我更喜歡漂亮的URL。

回答

0

嘗試重命名您的glob變量爲request_path並使用params [:request_path],我做了類似的事情,我從來沒有遇到過這個問題。然而,我相信我會掐斷尾巴,並通過slu search尋找,然後比較我認爲應該是的道路。

+0

param返回爲一個數組,所以你需要做的就是params [:path] .join('/') – Kris

相關問題