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

Ric*_*wis 13 ruby ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

`add_route': Invalid route name, already in use: 'root'  (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Ric*_*wis 20

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

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

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

 # Directing the user after login
 authenticated :user do
   root :to => 'pages#index', as: :authenticated_root
 end
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.帮助我从Rails3移动到Rails4! (3认同)