Ich habe eine Sequenz von ActiveRecord-Objekten, die ich kaskadieren möchte, aber einige der Objekte werden nicht entfernt.beeinflusst das Klonen ActiveRecord Callbacks?
Im Wesentlichen habe ich wie folgt: -
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
wo Projekt eine Definition eines Projekts ist, Aufgabe eine Definition einer Aufgabe an diesem Projekt und Planen Sie einen has_many: durch das ein originelles Projekt in ein anderes Projekt verbindet , das ist ein Zeitplan des ursprünglichen Projekts.
Wenn ich einen Zeitplan erstelle, klammere ich das ursprüngliche Projekt (d. H. Der Zeitplan ist ein Klon des ursprünglichen Projekts und jede der Aufgaben im Zeitplan sind Klone der Aufgaben im ursprünglichen Zeitplan).
Wenn ich ein schedule.destroy mache, würde ich erwarten, dass das Schedule-Projekt und alle zugehörigen Tasks gelöscht werden. Es wird jedoch nur das Zeitplanprojekt gelöscht, die Zeitplanaufgaben bleiben bestehen.
Dies ist kein Caching-Problem, da sich die Datensätze noch in der Datenbank befinden. Außerdem werden in der Datenbank definitiv separate Aufgaben mit einer Zeitplan-ID als Projekt-ID und einer eigenen eigenen ID erstellt.
Feuern Callbacks immer noch auf geklonte Objekte? Habe ich hier einen Trick verpasst?
Danke, Michael. Du hast recht, ich habe es falsch verstanden. Ich schaue mir den Rückruf nach dem Löschen an. Danke vielmals. –