我想實現一個Rails User
模型,該模型有一個名爲password
的DB列。我想使它這樣,當我打電話......如何在設置ActiveRecord之前讓setter方法加密數據?
user_instance.password = 'cleartext'
的方法,像這樣把它放在實例之前散列明文:
Digest::SHA1.hexdigest(cleartext)
我用回調試過,但問題在於,每次保存用戶時都會浪費pw,即使pw未更新也是如此。所以它會一遍又一遍地散佈並重新渲染。
我試圖重新定義password=
方法...
alias password= old_password=
def password=(cleartext)
old_password=(Digest::SHA1.hexdigest(cleartext))
end
,但得到一個錯誤說password=
不存在。
什麼是「虛擬屬性」? – Ethan 2009-02-16 21:13:23