0

我的应用程序使用 Devise 身份验证 gem。

当我做

rake db:migrate

在本地,一切都很顺利,但是当我在 Heroku 上执行此操作时:

heroku run rake db:migrate --app myappname

我明白了

rake aborted!
uninitialized constant Devise::Encryptors::Base

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

我不知道会出什么问题。

4

1 回答 1

3

我遇到了同样的问题,因为我实现了一个自定义加密器。自 2.1 版以来,devise 自定义加密器已被提取到单独的 gem。要使其正常工作,请执行以下操作。

将可设计加密的 gem 添加到您的Gemfile.

gem 'devise-encryptable'

来自 Devise::Encryptable::Encryptors::Base 的子类,而不是 Devise::Encryptors::Base。

# lib/devise/encryptors/md5.rb
require 'digest/md5'

module Devise
  module Encryptable
    module Encryptors
      class Md5 < Base
        def self.digest(password, stretches, salt, pepper)
          str = [password, salt].flatten.compact.join
          Digest::MD5.hexdigest(str)
        end
      end
    end
  end
end

我也更新了设计的操作方法页面。我希望这能解决你的问题。

于 2012-05-17T05:04:16.653 回答