Не могу определить корневой маршрут более одного раза в 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.

Другие вопросы по тегам