Devise: New Errors (Encrytable)

2019-04-05 01:31发布

问题:

I hadn't touched my code in a week, but when I bundled, then attempted to run my webserver I now get the following errors, which are leaving me dead in the water. Including the devise-encryptable gem as suggested in the error output does not resolve the issue and still causes the same errors. Any help is greatly appreciated.

[DEVISE] Devise.apply_schema is deprecated and has no effect. Please remove it.


[DEVISE] To select a encryption which isn't bcrypt, you should use devise-encryp
table gem.


[DEVISE] Devise.use_salt_as_remember_token is deprecated and has no effect. Plea
se remove it.

/Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1/lib/action_d
ispatch/http/mime_type.rb:101: warning: already initialized constant PDF
[DEVISE] You're trying to include :encryptable in your model but it is not bundl
ed with the Devise gem anymore. Please add `devise-encryptable` to your Gemfile 
to proceed.

/Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib/devise/model
s.rb:96:in `const_get': uninitialized constant Devise::Models::Encryptable (Name
Error)
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/models.rb:96:in `block (2 levels) in devise'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/models.rb:91:in `each'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/models.rb:91:in `block in devise'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/models.rb:122:in `devise_modules_hook!'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/models.rb:89:in `devise'
        from /Users/sa/Documents/AptanaWorkspace/sparkv1/app/models/sa
as_admin.rb:4:in `<class:SaasAdmin>'
        from /Users/sa/Documents/AptanaWorkspace/sparkv1/app/models/sa
as_admin.rb:1:in `<top (required)>'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.
2.1/lib/active_support/inflector/methods.rb:229:in `block in constantize'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.
2.1/lib/active_support/inflector/methods.rb:228:in `each'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.
2.1/lib/active_support/inflector/methods.rb:228:in `constantize'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise.rb:252:in `get'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/mapping.rb:77:in `to'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/mapping.rb:72:in `modules'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/mapping.rb:89:in `routes'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/mapping.rb:156:in `default_used_route'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/mapping.rb:66:in `initialize'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise.rb:286:in `new'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise.rb:286:in `add_mapping'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/rails/routes.rb:207:in `block in devise_for'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/rails/routes.rb:206:in `each'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.1.0/lib
/devise/rails/routes.rb:206:in `devise_for'
        from /Users/sa/Documents/AptanaWorkspace/sparkv1/config/routes
.rb:8:in `block in <top (required)>'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1
/lib/action_dispatch/routing/route_set.rb:272:in `instance_exec'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1
/lib/action_dispatch/routing/route_set.rb:272:in `eval_block'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1
/lib/action_dispatch/routing/route_set.rb:249:in `draw'
        from /Users/sa/Documents/AptanaWorkspace/sparkv1/config/routes
.rb:7:in `<top (required)>'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:40:in `block in load_paths'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:40:in `each'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:40:in `load_paths'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:16:in `reload!'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:26:in `block in updater'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.
2.1/lib/active_support/file_update_checker.rb:78:in `call'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.
2.1/lib/active_support/file_update_checker.rb:78:in `execute'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:27:in `updater'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/routes_reloader.rb:7:in `execute_if_updated'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application/finisher.rb:66:in `block in <module:Finisher>'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/initializable.rb:30:in `instance_exec'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/initializable.rb:30:in `run'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/initializable.rb:55:in `block in run_initializers'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/initializable.rb:54:in `each'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/initializable.rb:54:in `run_initializers'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application.rb:136:in `initialize!'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/railtie/configurable.rb:30:in `method_missing'
        from /Users/sa/Documents/AptanaWorkspace/sparkv1/config/enviro
nment.rb:5:in `<top (required)>'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/application.rb:103:in `require_environment!'
        from /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/l
ib/rails/commands.rb:25:in `<top (required)>'
        from script/rails:6:in `require'
        from script/rails:6:in `<main>'

回答1:

I just had the same problem.

As written on the wiki of devise, you have to add this line in your Gemfile:

gem 'devise-encryptable'

From the wiki:

If you're using encryptable on your models, you will now have to include devise-encryptable on your gemfile.

https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.1

Regarding the warnings:

Remove the following from your devise.rb:

# Automatically apply schema changes in tableless databases
config.apply_schema = false

# If true, uses the password salt as remember token. This should be turned
# to false if you are not using database authenticatable.
config.use_salt_as_remember_token = true