2012-10-31 5 views
5

우리의 어플리케이션에서는 레코드가 삭제되지 않도록 (사용자가 삭제를 취소 할 수 있도록) ActiveRecord destroy 메소드를 재정의했습니다. 그래서 같이 : 그러나트리거 의존성 : : override with destroyed destroy-method

def destroy 
    self.is_deleted = true 
    self.save 
    freeze 
end 

이 종속 우리 has_many 관계를 파괴하지 않도록 것으로 보인다. 즉, 부모 개체에서 destroy이 호출되면 has_many의 자식 개체가 삭제되지 않습니다. 즉, 삭제 된 개체는 SQL 'DELETE...'이거나 재정의 된 destroy 메서드입니다.

어떻게하면 하위 개체의 삭제를 트리거 할 수 있습니까?

감사합니다.

답변

6

파괴 콜백을 트리거해야합니다.

def destroy 
    self.is_deleted = true 
    self.save 
    run_callbacks :destroy 
    freeze 
end 
+0

감사! 그게 제가 누락 된 부분입니다. :) –