我有一个带有活动列的模型,它是一个布尔值.我想要验证所有新添加的记录对于company_id的唯一性,这样我可以添加尽可能多的记录,只要活动设置为false,就可以将相同的company_id添加到表中.每个company_id只能有一个活动记录.
我该怎么写?我已经尝试过:
validates :company_id,:uniqueness => { :scope => :active }
但是,这似乎也验证了主动是假的唯一组合(这样我的表中的永远不能有两个以上的company_id在相同的活动状态,无论活动是什么) – 上面的验证允许两个记录为company_id,一个为active = false,另一个为active = true.一旦这两个记录进入,验证将阻止其他所有内容.
然后我尝试添加:
scope :active,where(:active => true)
但是,似乎并没有改变验证(与上述相同的问题).
如何写这个验证,以便只要active为false,并且只允许一个active = true每个company_id,我可以添加具有相同company_id的多个记录?