验证以确保唯一但忽略空值?

时间:2012-04-15 23:53:22

标签: ruby-on-rails ruby-on-rails-3 activerecord

我有以下模型字段验证:

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

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

由于

1 个答案:

答案 0 :(得分:59)

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

validates_uniqueness_of :acronym, :allow_blank => true, :scope => [:group_id], :case_sensitive => false
相关问题