2010-08-05 93 views
2

我的关联选项似乎并未兑现。rails:dependent =>:销毁被忽略

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时被忽略,但我应该可以在连接模型上使用它吗?

回答

0

尝试

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

相同的人