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