2

ActiveModel::SecurePasswordを使用して Rails 認証を実装したいと考えていますが、ユーザーモデルに "password_digest" という列は必要ありません。「password_digest」の代わりに「foo」列を使用するようRailsに指示するにはどうすればよいですか?

ところで-この投稿を修正しました。私はもともと"password_digest"の代わりに"password " を持っていました。ごめん!ユーザーモデルの「password_digest」列について、Ryan Bates は RailsCast 270-authentication-in-railsで「名前は重要ですが、カスタマイズできます」と述べています。私は方法を見つけようとしていますか?ありがとう!

4

1 に答える 1

1

ソースコードから判断すると、できるようには見えません...このメソッドにモンキーパッチを適用したい場合を除きます...

# File activemodel/lib/active_model/secure_password.rb, line 34
def has_secure_password
  # Load bcrypt-ruby only when has_secure_password is used.
  # This is to avoid ActiveModel (and by extension the entire framework) being dependent on a binary library.
  gem 'bcrypt-ruby', '~> 3.0.0'
  require 'bcrypt'

  attr_reader :password

  validates_confirmation_of :password
  validates_presence_of     :password_digest

  include InstanceMethodsOnActivation

  if respond_to?(:attributes_protected_by_default)
    def self.attributes_protected_by_default
      super + ['password_digest']
    end
  end
end
于 2012-11-16T19:23:27.093 に答える