如何使用 has_secure_password 更新密码属性?
How to update password attribute with has_secure_password?
我使用 has_secure_password
作为 User
模型。现在我正在尝试使用 AJAX 来更新一些用户的属性,包括密码。但是,在 has_secure_password
中,password
属性似乎不再存在,取而代之的是 password_digest
。所以当我想做的时候
user[:password] = "The password passed by AJAX"
user.save!
我得到了:
ActiveModel::MissingAttributeError (can't write unknown attribute
password
)
问题是:在这种情况下更新用户密码的正确方法是什么?我是否需要手动计算哈希并更新 password_digest
?
编辑:
我正在使用 Rails 4.2.1
通常你只需要使用:
user = User.find 1
user.password = 'Test123456789'
user.save
但是,听起来您没有向用户添加 password_digest 列 table 或者没有 运行 迁移。
我使用 has_secure_password
作为 User
模型。现在我正在尝试使用 AJAX 来更新一些用户的属性,包括密码。但是,在 has_secure_password
中,password
属性似乎不再存在,取而代之的是 password_digest
。所以当我想做的时候
user[:password] = "The password passed by AJAX"
user.save!
我得到了:
ActiveModel::MissingAttributeError (can't write unknown attribute
password
)
问题是:在这种情况下更新用户密码的正确方法是什么?我是否需要手动计算哈希并更新 password_digest
?
编辑:
我正在使用 Rails 4.2.1
通常你只需要使用:
user = User.find 1
user.password = 'Test123456789'
user.save
但是,听起来您没有向用户添加 password_digest 列 table 或者没有 运行 迁移。