Rails模拟一个值中的一个,但是其他值的倍数

时间:2011-07-26 21:32:01

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

我有一个rails应用程序,在附件模型中有一个名为main_image的字段,它是boolean。假设在数据库中只允许一个true但多个false,但是因为我现在拥有范围,所以每个资产只允许一个,这是另一个模型。如何允许多个假,但每个附件只有一个真实?

1 个答案:

答案 0 :(得分:3)

我现在通过在我的模型中使用以下代码解决了这个问题:

validates_uniqueness_of :main_image, :scope => [:asset_id], :if=>:main_image

因为:main_image是true或false,这表示取main_image字段并确保它对每个asset_id都是唯一的,只要它为真,因为如果它不为真,它将返回false,因此跳过检查是否为模型是独一无二的。