0

我有这个密码验证规则 - 我想在用户创建帐户然后在设置中验证密码 - 如果他不更改密码,我不想更改它(仅当相应用户更改它时= 他通过密码确认设置了新密码)。

这是我所拥有的:

  validates :password, 
            :length => {:within => 6..40}, 
            :on => :create   

但是该规则:on => :create对我不起作用 - 如果我在设置中发送空白密码,我仍然会收到有关密码错误的错误。

我究竟做错了什么?

4

1 回答 1

0

看起来应该这样做:

validates :password, length: { within: (6..40) }, if: -> user { not user.persisted? or user.password.present? }

如果用户尚未持久化(create操作)或稍后已提供密码(通过设置) ,它将仅验证密码

于 2013-01-27T11:20:07.710 回答