0

在Michael Hartl 的教程的第 7 章中,有一个用户模型 < code here >,它的密码属性定义为 attr_accessor 和 attr_accessible,并带有一个存在验证器。

问题是:如果我检索现有用户并尝试更新其电子邮件,ruby 会抛出一个要求其密码的异常,并且每次我想更新任何其他属性时都被迫重新设置密码。例子:

User.first.update_attributes!(:email => "example@mail.com")
ActiveRecord::RecordInvalid: Validation failed: Password can't be blank, Password is too short (minimum is 6 characters)

我在密码的存在验证器旁边添加了“:on =>:create”,它似乎解决了这个问题。这是关于登录系统的正确解决方案吗?

任何完成过 Michael Harlt 教程的人都知道这是一个错误还是他的真实意图?

4

1 回答 1

0

您想将验证器添加到密码哈希字段中,以便检查存储在数据库中的实际密码。如果您让password=函数设置哈希列的值,则此方法将独立于实际密码虚拟变量工作。

于 2011-06-08T18:20:33.897 回答