Ruby on rails 在Rails 4中不能多次定义根路由
我的routes文件中包含以下内容:Ruby on rails 在Rails 4中不能多次定义根路由,ruby-on-rails,ruby-on-rails-4,rails-routing,route-constraint,Ruby On Rails,Ruby On Rails 4,Rails Routing,Route Constraint,我的routes文件中包含以下内容: 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
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”选项定义了两个同名路由
有办法解决这个问题吗?发生了什么变化?正如@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 ordinem.这是您的
routes.rb
文件中唯一的代码吗?谢谢@vimsha!我将发布修复程序.rails4.1.4,但这种情况仍然存在。废话。