2010-08-05 5 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.destroyClassRoom을 파괴하지만 어떤 것도 연관되어 있지 않습니다. ClassAssignments.

:through을 사용할 때 :dependent=>:destroy이 무시됩니다.하지만 조인 모델에서 사용할 수 있어야합니다.

답변

0

는 사람

에 대한

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

같은 시도