Rails Girls Guides使用Devise添加身份验证的问题

时间:2015-01-21 01:10:21

标签: ruby-on-rails ruby ruby-on-rails-4 devise ruby-on-rails-4.2

我对Rails很陌生,我正在尝试使用' devise'来构建用户身份验证系统,但我失败了。我正在关注Rails Girls Guides 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 deviserunning bundle installrunning rails g devise:install等所有解决方案。到目前为止,当我尝试使用Rails 4.0的设计时,没有任何工作。

此外,是否有人建议我可以遵循哪些教程来构建身份验证系统?到目前为止,我已经尝试了很多,但没有一个有效。

1 个答案:

答案 0 :(得分:3)

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

升级它会使这个错误消失。

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

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