我在学生和课堂之间有一个HABTM协会:
has_and_belongs_to_many :students, join_table: :classrooms_students
我为连接表创建了一个索引:
add_index "classrooms_students", ["classroom_id", "student_id"], unique: true
现在我要添加" uniq"检查这一点,以便在连接表中没有重复的记录,我可以在rails中捕获它。我可以直接将此检查添加到模型文件中,还是需要迁移才能执行此操作?
谢谢!
答案 0 :(得分:0)
我认为您应该优先将其添加到迁移中,然后您也可以进行模型级别检查(如下所述)。
在你的情况下,你有类似的东西:
class ClassroomsStudent
validates :student_id, uniqueness: { scope: :classroom_id }
end
在迁移中,您可以拥有:
class AddUniqueIndexClassroomsStudent
def change
add_index :classrooms_students, [:classroom_id, :student_id], unique: true
end
end