我有一系列我想級聯銷燬的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時,我會期待schedule項目及其所有相關任務被刪除。但是,只有計劃項目被刪除,計劃任務依然存在。
這不是緩存問題,因爲記錄仍在數據庫中。此外,在數據庫中確實有獨立的任務,其中包含作爲項目標識和他們自己的唯一標識的日程標識。
回調仍然會觸發克隆對象嗎?我在這裏錯過了一個詭計嗎?
謝謝,邁克爾。你說得對,我錯了。我會看看使用after_delete回調。非常感謝。 – 2009-04-13 12:34:36