【发布时间】:2019-01-20 03:06:59
【问题描述】:
我有一个生产中的现有应用程序,我们在用户记录中添加了新的必填字段。结果,忘记密码功能失败。我相信故障发生在recoverable.rb中的以下方法
# Update password saving the record and clearing token. Returns true if
# the passwords are valid and the record was saved, false otherwise.
def reset_password(new_password, new_password_confirmation)
if new_password.present?
self.password = new_password
self.password_confirmation = new_password_confirmation
save
else
errors.add(:password, :blank)
false
end
end
新属性无法机械生成。只有用户自己会知道正确的值。有谁知道解决这个问题的方法吗?
到目前为止,我想出的唯一想法如下:
使用 rake 脚本用我知道在现实生活中永远不会出现但会被模型验证规则接受的值填充新字段
当用户登录时,检测用户记录是否包含无效数据并强制他们进行更新。在用户编辑表单中,我会使用一些 javascript 将虚假值更改为空白。
【问题讨论】:
标签: ruby-on-rails devise passwords