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