`add_route’:无效的路由名称,已在使用中:’root’(ArgumentError)

我使用rails 4.1.1和ruby 2.1.1并且我遇到了设计问题,即我的路线..我之前使用过很多次

devise_for :users get 'pages/index' # Route to Devise Login Page devise_scope :user do root to: "devise/sessions#new" end # Directing the user after login authenticated :user do root :to => 'pages#index' end 

但是我得到了错误

 `add_route': Invalid route name, already in use: 'root' (ArgumentError) 

当试图启动服务器..我可以看到root被使用了两次,但就像我说我过去能够做到这一点..有没有办法解决这个问题

谢谢

在stackoverflow上找到这个有用的评论

对于Rails 4.0,您必须确保路径助手具有唯一的名称,例如root到:“dashboard #show”,如::: authenticated_root。 否则,经过身份validation的根和正常的根路由最终会为其路径助手设置相同的名称,而Rails 4.0不再允许这样做

所以我将经过身份validation的root更改为helper

  # Directing the user after login authenticated :user do root :to => 'pages#index', as: :authenticated_root end