Ich habe folgende Modelle eingerichtet.Nach dem Zerstören wird keine Assoziationszerstörung aufgerufen?
class Space
has_many :locations, through: :location_spaces
has_many :location_spaces, dependent: :destroy, inverse_of: :space
end
class Location
has_many :spaces, through: :location_spaces
has_many :location_spaces, dependent: :destroy, inverse_of: :location
end
class LocationSpace
belongs_to :location, inverse_of: :location_spaces
belongs_to :space, inverse_of: :location_spaces
end
Wenn ich einen SpaceLocation durch die location_ids Modifikation auf dem Raummodell zu erstellen, dies löst auch den AFTER_CREATE Rückruf für SpaceLocation.
Wenn Sie jedoch das Raummodell aktualisieren und die location_ids auf [] setzen, wird die SpaceLocation gelöscht. Ruft jedoch den after_destroy-Rückruf nicht auf. Mit Blick auf den Sql wird die Zerstörung gemacht.
Warum wird der after_destroy-Callback nicht aufgerufen? Ich habe jeden "nachher" -Rückruf versucht, einschließlich after_touched, und nichts wurde aufgerufen.
Dies beantwortet meine Frage. http://stackoverflow.com/questions/30629680/rails-isnt-running-destroy-callbacks-for-has-many-through-join-model – ShivamD