我有一个数据库字段,我想存储我的密码。在我的模型中的before_create过滤器中,我调用加密函数并从明文保存到加密文本。
我现在也希望使用before_update进行加密,但前提是该值已更改。如何编写检查字段值是否已更改的条件?
答案 0 :(得分:26)
如果该字段名为
object.name_changed?
将返回true。
答案 1 :(得分:4)
由于您通常不使用您要向表单公开的字段将密码存储在模型中,因此仅更新它unless password.blank?
并且在字段“hashed_password”中具有真实密码就足够了你不会暴露在表格中。
感谢Ben(见下文)指出另外使用attr_protected
保护您的加密密码,因此无法从表单直接访问/更新。 1