如何使用has_secure_password更新密码属性?

时间:2015-12-28 07:46:53

标签: ruby-on-rails bcrypt-ruby

我将has_secure_password用于User模型。现在我尝试使用AJAX来更新一些用户的属性,包括密码。但是,与has_secure_password一样,password属性不再存在,替换为password_digest。所以当我想要做的时候

user[:password] = "The password passed by AJAX"
user.save!

我得到了:

  

ActiveModel :: MissingAttributeError(无法写入未知属性   password

问题是:在这种情况下更新用户密码的正确方法是什么?我是否需要手动计算哈希并更新password_digest

编辑:

我正在使用Rails 4.2.1

1 个答案:

答案 0 :(得分:0)

通常你只需使用:

user = User.find 1
user.password = 'Test123456789'
user.save

但是,听起来您没有在users表中添加password_digest列,或者没有运行迁移。