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 回答