rails has_secure_password。是否可以在DB

时间:2015-08-04 14:00:09

标签: ruby-on-rails passwords

我通过has_secure_password使用用户授权的rails项目。所以,密码存储在DB中作为加密密码。

现在我要添加以下内容: 用户可以将当前密码更改为新密码,此新密码也必须在DB中加密。

我找不到任何有关它的信息。

有没有办法用has_secure_password来做?

1 个答案:

答案 0 :(得分:2)

你可以在控制台中这样做:

user = User.find(1)
user.password = 'test123'
user.password_confirmation = 'test123'
user.save

因此,这将使用新密码更新用户。如果您想使用它update_attributes,那么:

user.update_attributes(password: 'test123', password_confirmation: 'test123')

这将更新用户的密码,该密码将以加密形式显示。您无需执行任何操作,因为rails会在更新时处理它。

或者,如果您使用的是strong parameters且有:

def user_params
  params.require(:user).permit(:password, :password_confirmation)
end

你在params中有这个:

 Parameters: {"user"=>{"password"=>"test123", "password_confirmation"=>"test123"}}

然后您可以在更新操作中使用它:

user.update(user_params)

希望这有帮助。