迁移到 Rails 4.0 后设计问题

Devise issue after migrating to Rails 4.0

从 3.2.1 升级到 Rails 4.0 后出现此错误:

Invalid route name, already in use: 'new_user_session'

我的路线文件中有这个:

  devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :registrations => "registrations", :confirmations => "confirmations", :passwords => "passwords"}
  devise_for :users do
    get '/users/auth/:provider'  => 'users/omniauth_callbacks#passthru'
    get '/users/logout' => 'users#logout'
  end

我现在需要怎么写才能正确?

谢谢

存在冲突,因为前两行的 devise_for 部分试图做同样的事情(即创建相同的设计路由名称,导致 new_user_session 已被使用) .

您可以:

  • 删除第一行

  • 制作第二行devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :registrations => "registrations", :confirmations => "confirmations", :passwords => "passwords"} do

  • 将第二行设为devise_scope而不是devise_for