我有一个加入学生HABTM学生的联接表
不幸的是,它中有一些重复的记录。
如何重复删除连接表。理想情况下,使用Ruby。
答案 0 :(得分:0)
您可以使用以下查询从HABTM表中删除重复记录。
ActiveRecord :: Base.connection.execute(" DELETE FROM TableName WHERE(model_id_one,model_id_two)IN(SELECT model_id_one model_id_two FROM TableName GROUP BY model_id_one,model_id_two HAVING COUNT(*)> 1)" )
答案 1 :(得分:0)
我认为这会有所帮助:has_and_belongs_to_many, avoiding dupes in the join table
显示没有重复的相关条目:
has_and_belongs_to_many :students, -> { distinct }
但我也建议在你的联接表上添加唯一索引。