rails对布尔属性的唯一性

时间:2017-10-11 20:48:38

标签: validation unique

我的问题是: 我有一个关联表,无论person_id可能存在多少个FALSE值,我都需要对每个person_id执行一个仅接受TRUE作为'princial'列的值的验证。< / p>

我尝试按照以下方式进行rails验证:

validates :principal, uniqueness: { scope: :person_id }

不幸的是,验证无效。银行允许多条记录,其值为TRUE to principal,具有相同的person_id

1 个答案:

答案 0 :(得分:0)

我认为您别无选择,只能创建自定义验证

validate :validate_principal_uniqueness

def validate_principal_uniqueness
  errors.add(:principal, "should be uniq") if YourModel.where(principal: true).any?
end 

参考:http://guides.rubyonrails.org/active_record_validations.html#custom-validators

希望有所帮助