Почему Rails кодирует косую черту для всех (сплат) маршрутов? - PullRequest
1 голос
/ 04 февраля 2010

При использовании перехвата всех маршрутов 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. Я знаю, что мог бы декодировать request.path перед использованием в find, но я бы предпочел симпатичный URL.

1 Ответ

0 голосов
/ 04 февраля 2010

попробуйте переименовать переменную glob в request_path и использовать params [: request_path], я делаю похожую вещь, и у меня никогда не было этой проблемы.тем не менее, я полагаю, что отрываюсь от конца и ищу по слагу, а затем сравниваю путь с тем, что, по моему мнению, должно быть.

...