2

私の関連付けオプションが受け入れられないようです。

class ClassRoom < ActiveRecord::Base
  has_many :class_assignments, :dependent => :destroy
  has_many :people, :through=>:class_assignments

class Person < ActiveRecord::Base
  has_many :class_assignments, :dependent => :destroy
  has_many :class_rooms, :through=>:class_assignments

class ClassAssignment < ActiveRecord::Base
  belongs_to :person
  belongs_to :class_room

つまり、人または教室が削除された場合、結合テーブル/モデルのレコードも削除する必要があります。

ただし、 はClassRoom.last.destroy破棄されますがClassRoom、関連する はありませんClassAssignments

:dependent=>:destroyを使用すると無視されることはわかって:throughいますが、結合モデルで使用できるはずですか?

4

1 に答える 1

0

試す

  class ClassRoom < ActiveRecord::Base 
  def before_destroy
    self.class_assignments.destroy_all
  end

人も同じ

于 2010-08-05T19:26:17.213 に答える