当使用catch all route时,URL的正斜杠编码为%2F
,这意味着我无法使用request.path
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 :(得分:0)
尝试将你的glob变量重命名为request_path并使用params [:request_path],我做了类似的事情,我从来没有遇到过这个问题。但是,我相信我会抓住结尾并通过slug搜索,然后比较我认为应该是的路径。