diff --git a/CHANGELOG.md b/CHANGELOG.md index 73c2ca2760..4f1d988198 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ * Remove the `Devise::Models::Recoverable#after_password_reset` method. * bug fixes * Fix an `ActionDispatch::IllegalStateError` when testing controllers with Rails 5 rc 2(by @hamadata). + * Use `ActiveSupport.on_load` hooks to include Devise on `ActiveRecord` and `Mongoid`, + avoiding autoloading these constants too soon (by @lucasmazza, @rafaelfranca). * enhancements * Display the minimum password length on `registrations/edit` view (by @Yanchek99). * You can disable Devise's routes reloading on boot by through the `reload_routes = false` config. diff --git a/lib/devise/orm/active_record.rb b/lib/devise/orm/active_record.rb index 0935cdaa89..de11482589 100644 --- a/lib/devise/orm/active_record.rb +++ b/lib/devise/orm/active_record.rb @@ -1,3 +1,5 @@ require 'orm_adapter/adapters/active_record' -ActiveRecord::Base.extend Devise::Models +ActiveSupport.on_load(:active_record) do + extend Devise::Models +end diff --git a/lib/devise/orm/mongoid.rb b/lib/devise/orm/mongoid.rb index 31a0736d1e..cc2f1c55cc 100644 --- a/lib/devise/orm/mongoid.rb +++ b/lib/devise/orm/mongoid.rb @@ -1,3 +1,5 @@ -require 'orm_adapter/adapters/mongoid' +ActiveSupport.on_load(:mongoid) do + require 'orm_adapter/adapters/mongoid' -Mongoid::Document::ClassMethods.send :include, Devise::Models + Mongoid::Document::ClassMethods.send :include, Devise::Models +end