3
唯一性验证我对车型之一下面的验证规则,轨道上更新
validates :reciept_num, :presence => true,
:numericality => { :only_integer => true },
:uniqueness => true,
:on => :update,
:if => "!status_id.nil?"`
现在,当我更新使用update_attributes
方法的对象它给了我下面的错误
reciept_num: has already been taken
。
更新对象时,我没有更改reciept_num属性?那么,为什么验证在更新时失败?
如果我没有更新值,它必须是旧的,因此应该通过验证。我错过了什么。
感谢您的回复。读完这个后,我想到我创建的种子数据有重复的条目。 – robert 2011-12-24 03:40:00
而且,即使没有条件,':uniqueness => true'实际上也不能保证唯一性,所以在数据库中需要一个唯一的约束。 – 2011-12-24 03:40:26
亩太矮了,你能详细点吗? – maletor 2012-09-07 07:20:53