Hi,
I just added devise in my brand new Rails 5 app. I have this model :
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
When I start the app, I have this error :
/usr/local/bundle/gems/activerecord-5.0.0.beta1/lib/active_record/dynamic_matchers.rb:21:in `method_missing': undefined method `devise' for User (call 'User.connection' to establish a connection):Class (NoMethodError)
from /app/app/models/user.rb:4:in `<class:User>'
from /app/app/models/user.rb:1:in `<top (required)>'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:492:in `load'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:492:in `block in load_file'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:682:in `new_constants_in'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:491:in `load_file'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:388:in `block in require_or_load'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:37:in `block in load_interlock'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/concurrency/share_lock.rb:115:in `exclusive'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies/interlock.rb:11:in `loading'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:37:in `load_interlock'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:369:in `require_or_load'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:529:in `load_missing_constant'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:212:in `const_missing'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/inflector/methods.rb:259:in `const_get'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/inflector/methods.rb:259:in `block in constantize'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/inflector/methods.rb:257:in `each'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/inflector/methods.rb:257:in `inject'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/inflector/methods.rb:257:in `constantize'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:601:in `get'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:632:in `constantize'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise.rb:290:in `get'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/mapping.rb:81:in `to'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/mapping.rb:76:in `modules'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/mapping.rb:93:in `routes'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/mapping.rb:160:in `default_used_route'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/mapping.rb:70:in `initialize'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise.rb:324:in `new'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise.rb:324:in `add_mapping'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/rails/routes.rb:241:in `block in devise_for'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/rails/routes.rb:240:in `each'
from /usr/local/bundle/bundler/gems/devise-1d77099861e2/lib/devise/rails/routes.rb:240:in `devise_for'
from /app/config/routes.rb:2:in `block in <top (required)>'
from /usr/local/bundle/gems/actionpack-5.0.0.beta1/lib/action_dispatch/routing/route_set.rb:380:in `instance_exec'
from /usr/local/bundle/gems/actionpack-5.0.0.beta1/lib/action_dispatch/routing/route_set.rb:380:in `eval_block'
from /usr/local/bundle/gems/actionpack-5.0.0.beta1/lib/action_dispatch/routing/route_set.rb:362:in `draw'
from /app/config/routes.rb:1:in `<top (required)>'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:296:in `load'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:296:in `block in load'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:268:in `load_dependency'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/dependencies.rb:296:in `load'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/routes_reloader.rb:40:in `each'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/routes_reloader.rb:40:in `load_paths'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/routes_reloader.rb:16:in `reload!'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/routes_reloader.rb:26:in `block in updater'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/file_update_checker.rb:75:in `call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/file_update_checker.rb:75:in `execute'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/routes_reloader.rb:7:in `execute'
from /usr/local/bundle/gems/railties-5.0.0.beta1/lib/rails/application/finisher.rb:81:in `block (2 levels) in <module:Finisher>'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:396:in `instance_exec'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:396:in `block in make_lambda'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:169:in `call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:169:in `block (2 levels) in halting'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:547:in `call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:547:in `block (2 levels) in default_terminator'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:546:in `catch'
from /usr/local/bundle/gems/activesuppor
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
endt-5.0.0.beta1/lib/active_support/callbacks.rb:546:in `block in default_terminator'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:170:in `call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:170:in `block in halting'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:454:in `call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:454:in `block in call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:454:in `each'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:454:in `call'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:750:in `_run_prepare_callbacks'
from /usr/local/bundle/gems/activesupport-5.0.0.beta1/lib/active_support/callbacks.rb:90:in `run_callbacks'
from /usr/local/bundle/gems/actionpack-5.0.0.beta1/lib/action_dispatch/middleware/reloader.rb:81:in `prepare!'
from /usr/local/bundle/gems/actionpack-5.0.0.beta1/lib/action_dispatch/middleware/reloader.rb:53:in `prepare!'
from /usr/local/bundle/gems/spring-1.6.1/lib/spring/application.rb:153:in `serve'
from /usr/local/bundle/gems/spring-1.6.1/lib/spring/application.rb:131:in `block in run'
from /usr/local/bundle/gems/spring-1.6.1/lib/spring/application.rb:125:in `loop'
from /usr/local/bundle/gems/spring-1.6.1/lib/spring/application.rb:125:in `run'
from /usr/local/bundle/gems/spring-1.6.1/lib/spring/application/boot.rb:18:in `<top (required)>'
from /usr/local/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /usr/local/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from -e:1:in `<main>'
I have the error with the master branch of devise.
Add extend Devise::Models fix the bug.
Can you please provide a sample application that reproduces the error?
Use branch master for resolve the problem:
" gem 'devise', :github => 'plataformatec/devise', :branch => 'master' "
@francesco-loreti @lucasmazza using master did not solve it for me, but following @GCorbel's advice did, just to let you know :) I'm using Rails 5.0.0.rc1.
Where does extend Devise::Models go?
Inside the User class directly, if I'm not mistaken.
Always leave example code.
class User < ApplicationRecord
extend Devise::Models
end
I restarted the server rather than added extend Devise::Models to my User and it _Just Worked_
I'm on Rails 6
Most helpful comment
Add
extend Devise::Modelsfix the bug.