这似乎是一个简单的问题,但除了编写自定义验证器之外,我似乎找不到答案。我有这个验证器
validates :password, :presence => true, :confirmation => true, :length => { :minimum => 5}
应用了更多规则,例如一些复杂的正则表达式,但这给出了要点。
问题是我只想在创建时应用存在,其他所有内容都需要在创建和更新时应用。因为用户在更新信息时可能没有更改密码。
我尝试拆分规则
validates :password, :presence => true, :on => :create
validates :password, # The rest of the rules
这导致所有规则在更新时都被忽略。是否有一种简单的方法可以仅应用一个规则来创建,并将其余规则应用于所有内容?
您可以尝试将其保持在一行中,但是应用:on => :create
到只是:presence
check:
validates :password, :presence => {:on => :create}, :confirmation => true, :length => { :minimum => 5}
但是,我不确定始终要求最小长度是否有意义,但并不总是要求存在 - 如果您使用空白密码更新现有记录,由于长度为 0,无论如何它都会失败验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)