マルチスコープの一意性検証の動作を明確にしたかったのです。ドキュメントには次のように書かれています。
または、複数のスコープパラメータもあります。たとえば、教師が特定のクラスの学期ごとに1回だけスケジュールに参加できるようにします。
class TeacherSchedule < ActiveRecord::Base
validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end
これについての私の理解は、同じ学期に2つのクラスを教える教師を雇うことはできますが、同じクラスを教えることはできません。また、異なる学期に同じクラスを教える教師を雇うこともできます。これは正しいです?検証が失敗するためには、3つのフィールドすべてが既存のレコードと一致する必要がありますか?
semester_idまたはclass_idのいずれかが一致した場合に失敗するように検証する方法はありますか?