나는 일련의 ActiveRecord 객체를 파괴하려고하지만 일부 객체는 제거되지 않습니다.복제가 activerecord 콜백에 영향을 줍니까?
프로젝트는 프로젝트의 정의입니다class Project < ActiveRecord::Base
has_many :tasks, :dependent => :destroy
has_many :schedules, :dependent => :destroy
has_many :project_schedules, :through => :schedules, :class_name => "Project", :dependent => :destroy
end
class Schedule < ActiveRecord::Base
belongs_to :project_schedule, :class_name => "Project"
belongs_to :project
end
class Task < ActiveRecord::Base
belongs_to :project
end
이 작업은 해당 프로젝트에서 작업의 정의와는 has_many 예약 : 즉 다른 프로젝트에 원래 프로젝트 링크를 통해 -는 다음과 같이
는 기본적으로 내가 가진 이것은 원래 프로젝트의 일정입니다.
일정을 만들 때 원본 프로젝트를 원본으로 복제합니다. 즉, 일정은 원본 프로젝트의 복제본이며 일정에있는 각 작업은 원래 일정에있는 작업의 복제본입니다.
내가 schedule.destroy를 할 때 일정 프로젝트와 모든 관련 작업이 삭제 될 것으로 예상됩니다. 그러나 일정 프로젝트 만 삭제되고 일정 작업은 그대로 유지됩니다.
레코드가 여전히 데이터베이스에 있으므로 캐싱 문제가 아닙니다. 또한 프로젝트 ID와 고유 한 ID로 일정 ID가있는 데이터베이스에서 생성되는 작업은 분명히 구분됩니다.
복제 된 개체에 여전히 콜백이 실행됩니까? 내가 속임수를 놓친 적이 있니?
감사합니다, 마이클. 네가 맞아, 나는 이것을 잘못된 방향으로 돌리고 있었다. after_delete 콜백을 사용하여 살펴 보겠습니다. 많은 감사합니다. –