ruby gem BCryptには、そのモジュールの使い方の例があります。ドキュメントから撮影:私たちはself.password_hash
属性を持っているときインスタンス変数&self.variableの使用
は、なぜ我々は、すべてのインスタンス変数@password
を使うのでしょうか?私は何かが欠けているように感じます、おそらく私のルビーの経験がないからです。個人的に、私はと同じであると信じるものを達成しているだろう:次のように
def password
self.password_hash ||= Password.new(self.password_hash)
end
def password=(new_password)
self.password_hash = Password.create(new_password)
end
私は答え始めました - しかし、あなたが正しいと分かりました、少し奇妙です。私は '@ password'と'#password_hash'の違いを調べるために、周囲の状況を調べなければならないと思います。私はあなたの方法がうまくいくと思いますが、時にはこれらの2つが異なるように要求する副作用があるかもしれません。私が確かめることのできる唯一のことは、 '@ password'は常にPasswordのインスタンスですが、'#password_hash' _が可能であるように見えますが、常に_そうであるようには見えません。 '#password_hash ='を呼び出すための変更方法がありますか? – Matt