我正在尝试验证字段对同一记录中其他字段的唯一性。
例如,我有10个输入(假设它们被命名为field1,field2,field3等),每个字段需要为1-10。我不希望用户能够在输入中使用相同的数字两次。
我是否需要按照显示错误的方式创建自定义验证,如果field1!= field2!= field3等,或者是否有建立方式来提供所有字段列表?
答案 0 :(得分:0)
Activerecord没有定义的验证来执行此操作。
您必须在
行创建自定义验证def model
ATTRS_TO_VALIDATE = ['attr1', 'attr2', 'attr3']
attributes_accessible :attr1, :attr2, :attr3
validate :custom_validation
def custom_validation
unless self.attributes.select{|k,v| ATTRS_TO_VALIDATE.include?(k)}.values.uniq.length == ATTRS_TO_VALIDATE.length
error.add("fields need to be uniq")
end
end
end
希望这能解决您的问题