使用自定义方法更新设计用户密码

时间:2016-09-16 05:30:50

标签: ruby-on-rails devise

我正在使用Devise进行身份验证,并尝试使用某种方法将某些用户的密码更改为其出生日期

def set_dob_password id
 @user = User.find(id)
 @user.update_attribute(password: @user.birth_date)
end

没有工作 。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

当然不行!设计只在DB中存储加密密码。如果您查看用户表,则不会看到“密码”字段,而是“encrypted_pa​​ssword”列。

首先必须加密密码。

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。