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>
このPRで問題が修正されたようです https://github.com/plataformatec/devise/pull/315 少し前。アプリケーションのdevise gemを更新します(可能な場合)。
Gemfile
のdeviseのバージョンを少なくとも3.4.0に変更します。
gem 'devise', '~> 3.4.0' # or later
次に実行します:
bundle update devise
更新:Deviseはバージョン3.5.x
に更新され、4.0
はまもなくリリースされます( RubyGems.org のすべてのバージョンを参照してください)。つまり、Gemfile
に少なくともバージョン3.5.x
を定義する必要があるかもしれません。
gem 'devise', '~> 3.5.0'
または、可能な最新バージョンをロードするだけです。
gem 'devise', '> 3.4'
bundle update devise
が後に続きます
最近更新 https://github.com/plataformatec/devise/pull/3153#issuecomment-71185519
Gemfile
gem 'devise', github: 'plataformatec/devise'
それでも、デバイス3.4.1ではエラーが発生していました。
Userモデルで:confirmable
を削除すると、問題が修正されました。