ハッシュ後にパスワードを保存しようとしていますが、データベースに NULL として表示されます。パスワード文字列と名前文字列を使用してユーザーの足場を生成し、代わりにこれを使用してハッシュされたパスワードを保存するように mysql テーブルを変更しました。
ALTER TABLE users CHANGE password hashed_password CHAR(40) NULL;
私のモデル:
class User < ActiveRecord::Base
attr_accessor :password
attr_accessible :name, :password
validates :name, :uniqueness => true
validates :password, :length => { :in => 6..20 }
def before_create
self.hashed_password = User.hash_password(self.password)
end
def after_create
@password = nil
end
private
def self.hash_password(password)
Digest::SHA1.hexdigest(password)
end
end
Rails 3.2.13 を使用しています。