0

私のアプリケーションは Devise authentication 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 に抽出されました。それを機能させるには、次の手順を実行します。

devise-encryptable gem を に追加しますGemfile

gem 'devise-encryptable'

Devise::Encryptors::Base の代わりに、Devise::Encryptable::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

deviseのハウツーページも更新しました。これで問題が解決することを願っています。

于 2012-05-17T05:04:16.653 に答える