2012-04-06 2 views
1

у меня есть маршрут, который предполагает, чтобы соответствовать что-то вроде этого
LOCALHOST: 3000/сайта/администраторматча в рельсах routes.rb перенаправляет слишком много раз

и перенаправлять

локальные: 3000/ан/сайт/администратор

здесь является линия маршрута, который должен соответствовать этому
routes.rb

match '*path', to: redirect("/#{I18n.default_locale}/%{path}") 

но вместо сопоставления его и перенаправлять на локальный: 3000/EN/сайт/админ, Это перенаправлять infite к этому

http://localhost:3000/en/en/en/en/en/en/en/en/en/en/en/en/en/site/admin 
(adds /en until browser complains about infite loop) 

Любая идея, почему это infite петли происходит? Благодаря

EDIT

Ссылка на мой мой весь routes.rb файл

https://gist.github.com/2323762

ответ

2

У вас есть маршрут выше в файле, который улавливает «/: локаль/: путь "URL, к которому вы перенаправляетесь? Если нет, ваш маршрут провалится и снова поймает маршрут «* путь» (что соответствует чему-либо).

+0

Спасибо, что имеет смысл, я проверю это. Я также разместил gist на свой файл route.rb – ruevaughn

+0

Поскольку 'sites' является ресурсом, а' admin' определен в 'collection', URL-адрес' sites/admin', а не 'site/admin' (определяющий их на 'member' даст вам что-то вроде' site/1/admin'). –

+0

Еще одна вещь: вы можете добавить весь путь к нижней части области «scope»: locale «', чтобы до тех пор, пока вы начинаете свой URL с действительной локалью, например. '/ en', вы не получите бесконечного перенаправления. –

 Смежные вопросы

  • Нет связанных вопросов^_^