37

我有以下模型字段验证:

validates_uniqueness_of :acronym, :scope => [:group_id], :case_sensitive => false

问题是这个字段是可选的,并且一个空/nil 值作为已经采用的首字母缩略词返回。如果提供了值,我只想验证首字母缩写词是否唯一。有没有办法更新此验证以仅在存在实际值时进行。不是零/空?

谢谢

4

1 回答 1

69

是的,您可以将两个可能的选项传递给可选字段的验证::allow_blank:allow_nil,这将分别跳过对blanknil字段的验证。如果您将验证更改为以下内容,您应该获得所需的行为:

validates_uniqueness_of :acronym, :allow_blank => true, :scope => [:group_id], :case_sensitive => false
于 2012-04-15T23:59:00.310 回答