У меня есть некоторые не очень простые проблемы проектирования маршрутизации с рельсами 3.
У нас есть сайт, переведенный на несколько языков. Некоторые из этих языков имеют полную поддержку домена, например:
example.com -> english
example.es -> spanish
example.fr -> french
exemple.de -> german
... (lot more)
Но мы также имеем:
example.com/zh-hans -> chinese
example.com/ru -> russian
... (lot more)
Мне известна функция ограничений (для соответствия? С request.host), но у меня много проблем с выяснением того, как заставить систему маршрутизации работать хорошо с обоими типами URL.
Все сломалось, как только мы получили два разных типа запросов:
host:example.es path:/everything-else
host:example.com path:/LANG/everything-else
Единственное решение, которое я нашел, это сделать перехват всех маршрутов match '*' => 'website#routing'
и обезопасить все помощники пути, но я думаю, что это не лучшее решение для поддержки приложения в будущем.
Какие-нибудь решения?