我的问题是:
我有一个关联表,无论person_id
可能存在多少个FALSE值,我都需要对每个person_id
执行一个仅接受TRUE作为'princial'列的值的验证。< / p>
我尝试按照以下方式进行rails验证:
validates :principal, uniqueness: { scope: :person_id }
不幸的是,验证无效。银行允许多条记录,其值为TRUE to principal,具有相同的person_id
答案 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
希望有所帮助