Rails 女团使用 Devise 添加认证的问题

Problems with Rails Girls Guides's Adding Authentication with Devise

我是 Rails 的新手,我正在尝试使用 'devise' 构建用户身份验证系统,但我失败了。我正在关注 Rails 女童军 tutorial 关于使用 gem 'devise' 添加身份验证的内容。一旦我进入第 5 步,即设置用户模型,我在 运行 rake db:migrate

之后收到此错误
rake aborted!
NoMethodError: undefined method `merge!' for #<ActionDispatch::Routing::Mapper::Scope:0x007fd3397a7448>
/Users/.rvm/gems/ruby-2.1.2/gems/devise-3.0.4/lib/devise/rails/routes.rb:420:in `ensure in with_devise_exclusive_scope'
/Users/.rvm/gems/ruby-2.1.2/gems/devise-3.0.4/lib/devise/rails/routes.rb:420:in `with_devise_exclusive_scope'
/Users/.rvm/gems/ruby-2.1.2/gems/devise-3.0.4/lib/devise/rails/routes.rb:233:in `block (2 levels) in devise_for'
/Users/.rvm/gems/ruby-2.1.2/gems/devise-3.0.4/lib/devise/rails/routes.rb:336:in `block in devise_scope'

有人解决过这个错误吗?我查看了所有解决方案,例如 not generating user model before installing devise, running bundle install, running rails g devise:install 等。当我尝试为 Rails 4.0.

使用设计时,到目前为止没有任何效果

另外,有没有人对我可以遵循哪些教程来构建身份验证系统有建议?到目前为止,我已经尝试了很多,并且 none 奏效了。

这看起来是之前 3.4.0 设计的已知错误。

升级它应该可以消除此错误。

为此,请在 gem "devise" <might have some other stuff in front> 处编辑 Gemfile 并将其更改为 gem "devise", '~> 3.4.1'

然后 运行 bundle update devise 就完成了。