`add_route':无效的路线名称,已在使用中:' root' (引发ArgumentError)

时间:2014-06-17 15:07:05

标签: ruby-on-rails ruby devise

我使用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被使用了两次,但就像我说我过去能够做到这一点..有没有办法解决这个问题

由于

1 个答案:

答案 0 :(得分:19)

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

  

对于Rails 4.0,您必须确保路径具有唯一的名称   帮助者,像root一样:“dashboard #show”,as :: authenticated_root。   否则,经过身份验证的根和正常的根路由最终会生效   他们的路径助手具有相同的名称,不再使用Rails 4.0   允许

所以我将经过身份验证的root更改为helper,就像这样

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