Придумайте ошибку при обновлении 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>

3 ответа

Решение

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

Измените версию устройства в своем 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

Недавно обновленный https://github.com/plataformatec/devise/pull/3153

Gemfile

gem 'devise', github: 'plataformatec/devise'

Это все еще производило ошибку для меня с devise 3.4.1.

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

Другие вопросы по тегам