我正在使用Devise进行身份验证,并尝试使用某种方法将某些用户的密码更改为其出生日期
def set_dob_password id
@user = User.find(id)
@user.update_attribute(password: @user.birth_date)
end
没有工作 。这样做的最佳方式是什么?
答案 0 :(得分:2)
当然不行!设计只在DB中存储加密密码。如果您查看用户表,则不会看到“密码”字段,而是“encrypted_password”列。
首先必须加密密码。
pw = BCrypt::Password.create(@user.birth_date)
@user.update_attribute(:encrypted_password, pw)
确保首先拥有'bcrypt'宝石。
答案 1 :(得分:0)
@ user.update_attributes(密码:params [:密码],password_confirmation:params [:password_confirmation])。您需要更新密码+密码确认。因此,在您的情况下,用用户DoB替换parmas。