我想澄清多范围唯一性验证的行为。 documentation说:多范围唯一性验证
甚至多个范围参数。例如,确保 级别的教师每学期只能安排一次。
class TeacherSchedule < ActiveRecord::Base
validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end
我对此的理解是,我可以有一个教师在同一学期教两个班,但不是同一类的,我可以有一个教师的教学在不同学期同一类。它是否正确?所有3个字段必须匹配一些现有的记录才能验证失败?
有没有一种方法来验证它,以便它失败,如果semester_id或class_id匹配?
为什么不添加两个验证,每个都有不同的范围? –