当我运行rails s
时:
/Users/galli01anthony/.rvm/gems/ruby-2.1.3/gems/devise-3.2.4/lib/devise/rails/routes.rb:455:in
`ensure in with_devise_exclusive_scope': undefined method `merge!' for
#<ActionDispatch::Routing::Mapper::Scope:0x007f8743e19020> (NoMethodError)
当我运行rake db:reset
或db:migrate
或db:setup
时:
rake aborted!
NoMethodError: undefined method `merge!' for #<ActionDispatch::Routing::Mapper::Scope:0x007fca8d3f2780>
答案 0 :(得分:71)
这个问题似乎已经解决了这个PR https://github.com/plataformatec/devise/pull/3153。更新应用程序中的设计gem(如果可能)。
将Gemfile
中的设计版本更改为至少3.4.0:
gem 'devise', '~> 3.4.0' # or later
然后运行:
bundle update devise
更新:前一段时间版本已更新为版本3.5.x
,4.0
即将发布(请参阅RubyGems.org上的所有版本)。也就是说,您可能希望在3.5.x
中定义至少一个版本Gemfile
:
gem 'devise', '~> 3.5.0'
或者只是加载可能的最新版本:
gem 'devise', '> 3.4'
跟随bundle update devise
答案 1 :(得分:5)
最近更新了https://github.com/plataformatec/devise/pull/3153#issuecomment-71185519
Gemfile
gem 'devise', github: 'plataformatec/devise'
答案 2 :(得分:1)
使用设计3.4.1,它仍然在为我产生错误。
删除用户模型中的:confirmable
修复了问题。