2009-08-14 2 views
0

현재 이런 종류의 설치가 있습니다.Rails : 모델 파괴가 얼마나 자동화되어 있습니까?

:procedures, has_many => :steps 

단계는 아래에 만들어진 절차와 관련이 있습니다. 현재 프로 시저에 대한 내 메소드를 삭제하는 것은 다음과 같습니다.

def destroy 
    @procedure.destroy 
end 

이 절차와 관련된 모든 단계를 찾아 파괴 메소드를 호출해야합니까, 아니면 레일즈가 자동으로이 문제를 처리합니까?

답변

3

': depend => : destroy'옵션을 사용하여 파괴에 포함 된 종속 하위 항목을 가져올 수 있습니다.

그래서 귀하의 경우는 것 :

has_many => :steps, :dependent => :destroy 
절차가 파괴 될 때 단계를 파괴

.

당신은 또한 사용할 수 있습니다

레일 사이트

에서

has_many => :steps, :dependent => :delete_all 

: 파괴 : 그들은 행동에 해당 때문에 기호는 이렇게 명명 된 DELETE_ALL 옵션을 호출하여 달성 모델 개체에서 삭제 대 삭제. 하나는 다른 하나는 바로 그래서 DELETE_ALL가 콜백을 파괴하고 의지를 파괴 실행되지 않습니다 삭제 SQL 문

를 생성 콜백을 트리거합니다.

+0

블록 표기법을 사용하면 어떻게 : dependent 옵션을 추가 할 수 있습니까? 질문에 내 코드 샘플을 추가했습니다. – Karl

+0

신경 쓰지 마세요, 이것은 경로가 아니라 모델에 들어갑니다. 무엇을 생각하고 있습니까? – Karl

관련 문제