我有一个针对我的用户
的验证:
validates :password,
presence: true,
confirmation: true,
length: { minimum: 6 },
:on => :create
这很明显。当我创建(注册)一个新的
用户
时,我想填写他们的密码,因此就有了presence:true
。情况1)当用户想要更新他的帐户(比如更改用户名)时,表单只有
电子邮件
和用户名
字段。这是可以的,验证也是可以的。情况2)他忘记了密码,我向他发送了“忘记密码链接”,他在创建新密码的页面上。表单有这两个字段:密码和密码确认。然而,他将这两个字段都留空并提交表单。验证通过因为它只是
:on => create
!因为情况1)
我不能添加:on => update
,因为情况1)不会通过,因为没有密码字段。在这种情况下我该怎么做?什么是最佳实践或解决这个“问题”的现实方法?
form
(情况2)中的text_fields
中添加required =>“required”
,这样表单就无法提交空白密码。 - Pavan