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>
Ответы
Ответ 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
Ответ 2
недавно обновлено https://github.com/plataformatec/devise/pull/3153#issuecomment-71185519
Gemfile
gem 'devise', github: 'plataformatec/devise'
Ответ 3
Это все еще вызывало ошибку для меня с помощью 3.4.1.
Удаление :confirmable
в модели пользователя устранило проблему.