Не могу определить корневой маршрут более одного раза в Rails 4
В моем файле маршрутов есть следующее:
scope :constraints => lambda{ |req| req.session[:user_id].present? } do
root "users#show"
end
scope :constraints => lambda{ |req| req.session[:admin_id].present? } do
root "brands#index"
end
root "sessions#new"
Этот код прекрасно работал в Rails 3, но когда я использую его в Rails 4, я получаю следующее сообщение об ошибке:
Неверное имя маршрута, уже используется "root" (ArgumentError).
Возможно, вы определили два маршрута с одинаковым именем, используя опцию ": как"
Есть ли способ обойти это? Что изменилось?
1 ответ
Решение
Как отметил @vimsha, это известная проблема, и в моем случае лучшим решением было сделать следующее:
scope :constraints => lambda{ |req| req.session[:user_id].present? } do
match '/', to: "users#index", via: :get
end
scope :constraints => lambda{ |req| req.session[:admin_id].present? } do
match '/', to: "brands#index", via: :get
end
root "sessions#new"
Alles im ordinm.