问题描述
我有以下的模型现场验证:
I have the following model field validation:
validates_uniqueness_of :acronym, :scope => [:group_id], :case_sensitive => false
现在的问题是,这一领域是可选的,和一个空/空值被返回作为已经采取的首字母缩写。我只是想验证的缩写,是独特的,如果提供了一个值..有没有一种方法来更新这个验证,只需要的地方,如果有实际价值..不是零/空的?
The problem is that this field is optional, and a empty/nil value is returning as being an acronym already taken. I only want to validate that an acronym is unique if a value was provided.. Is there a way to update this validation to only take place if there is an actual value.. not nil/empty?
感谢
推荐答案
是的,有一些可以传递给验证为可选字段两个可能的选择::allow_blank
或:allow_nil
,这将跳过验证上空白
和零
字段,分别。如果你改变你的验证,下面,你应该得到你想要的行为:
Yes, there are two possible options that you can pass to validations for optional fields: :allow_blank
or :allow_nil
, which will skip the validations on blank
and nil
fields, respectively. If you change your validation to the following, you should get the behaviour you want:
validates_uniqueness_of :acronym, :allow_blank => true, :scope => [:group_id], :case_sensitive => false
这篇关于验证以保证唯一性,但忽略空值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!