如何使用 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 或者没有 运行 迁移。