我有这个密码验证规则 - 我想在用户创建帐户时验证密码,然后在设置中验证 - 如果他没有更改密码,我不想更改它(仅当相应的用户时)会改变它=他设置了密码确认的新密码。
这就是我所拥有的:
validates :password,
:length => {:within => 6..40},
:on => :create
但规则:on => :create
对我不起作用 - 如果我在设置中发送空白密码,我仍然会收到有关密码错误的错误。
我做错了什么?
答案 0 :(得分:0)
看起来应该这样做:
validates :password, length: { within: (6..40) }, if: -> user { not user.persisted? or user.password.present? }
如果用户尚未保留(create
操作)或稍后提供密码(通过设置),它将仅验证密码