Rails - 从非索引表中删除行

时间:2012-10-15 12:52:57

标签: sql ruby-on-rails

我有一个连接两个表之间的连接表。它有2列:user_id和course_id。表的名称是:course_sub_managers。该表没有索引。那么,如何删除满足course_id =某个变量的条件的所有行?至于现在我用:

sql = "DELETE FROM course_sub_managers WHERE course_id = " + @course.id.to_s
ActiveRecord::Base.connection.execute(sql)

是否有Rails方式来编写它?

2 个答案:

答案 0 :(得分:1)

我怀疑你有一个课程模型,你写了类似的东西:

has_many :course_sub_managers
has_many :users, through => :course_sub_managers

在这种情况下,您可以使用:

@course.course_sub_managers.delete_all

答案 1 :(得分:0)

听起来你只想处理课程的删除?使用:dependent => :破坏你的人际关系。

has_many :course_sub_managers, :dependent => :destroy

当您销毁课程时,它会自动删除相关的表项。