2

2つのテーブルを接続する接続テーブルがあります。user_idとcourse_idの2つの列があります。テーブルの名前はcourse_sub_managersです。このテーブルにはインデックスがありません。では、course_id =特定の変数の条件を満たすすべての行を削除するにはどうすればよいですか?今のところ私は使用します:

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

Railsでそれを書く方法はありますか?

4

2 に答える 2

1

次のようなものを書いたコースモデルがあると思います。

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

その場合、次を使用できます。

@course.course_sub_managers.delete_all
于 2012-10-15T12:59:09.887 に答える
0

コースの削除を処理したいだけのようですね。関係に:dependent =>:destroyを使用します。

has_many :course_sub_managers, :dependent => :destroy

コースを破壊すると、関連するテーブルアイテムが自動的に削除されます。

于 2012-10-15T13:20:29.413 に答える