我的路线文件中有以下内容:
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)。
您可能使用':as'选项
定义了两个具有相同名称的路由
有没有办法解决这个问题?发生了什么变化?
答案 0 :(得分:2)
正如@vimsha指出的那样,它是known issue,在我的情况下,最好的解决方法是执行以下操作:
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 ordinem。