我对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 devise,running bundle install,running rails g devise:install等所有解决方案。到目前为止,当我尝试使用Rails 4.0的设计时,没有任何工作。
此外,是否有人建议我可以遵循哪些教程来构建身份验证系统?到目前为止,我已经尝试了很多,但没有一个有效。
答案 0 :(得分:3)
这看起来是先前3.4.0设计的已知错误。
升级它会使这个错误消失。
为此,请修改Gemfile
gem "devise" <might have some other stuff in front>
并将其更改为gem "devise", '~> 3.4.1'
然后运行bundle update devise
,你就完成了。