Подтвердить что ты не робот

Devise повышает ошибку при обновлении Rails 4.2

Когда я запустил 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>
4b9b3361

Ответ 1

Кажется, что проблема была исправлена ​​с этим PR https://github.com/plataformatec/devise/pull/3153 некоторое время назад. Обновите камень разработки в своем приложении (если возможно).

Измените версию devise в Gemfile как минимум на 3.4.0:

gem 'devise', '~> 3.4.0'   # or later

Затем запустите:

bundle update devise

Обновление: Devise был обновлен до версии 3.5.x некоторое время назад, а 4.0 скоро будет выпущен (см. все версии на RubyGems.org). Тем не менее, вы можете определить хотя бы версию 3.5.x в Gemfile:

gem 'devise', '~> 3.5.0'

Или просто загрузите самую новую версию, которая возможна:

gem 'devise', '> 3.4'

следовать по bundle update devise

Ответ 3

Это все еще вызывало ошибку для меня с помощью 3.4.1.

Удаление :confirmable в модели пользователя устранило проблему.