Löschen verknüpfter Datensätze auf Objekt zerstören Rails

7

Ich habe 2 Modelle

%Vor%

und

%Vor%

, die über eine Viele-zu-Viele-Beziehung verknüpft sind

%Vor%

Obwohl ich dependent: :destroy -Option angegeben habe, werden Gutscheincodes beim Löschen von Geschäften nicht gelöscht. Couponisierungen werden jedoch erfolgreich gelöscht. Gibt es eine Möglichkeit, verknüpfte verschachtelte Datensätze auf Objekt zerstören zu löschen?

    
Ilya Cherevkov 04.01.2014, 19:12
quelle

2 Antworten

16

Die Optionen dependent: :destroy werden ignoriert, wenn sie mit :through verwendet werden (siehe Dokument ). Sie müssen es manuell tun, mit einem before_destroy Rückruf zum Beispiel.

%Vor%     
Baldrick 04.01.2014, 19:30
quelle
2

Ich empfehle die Verwendung von :after_destroy callback. Wenn also einige Deal instance aus irgendeinem Grund fehlschlagen, werden Sie nicht alle CouponCodes löschen.

Hier ist ein Beispiel für :after_destroy , das funktionieren sollte:

%Vor%

Stellen Sie sicher, dependent: :destroy aus has_many :couponizations im Deals -Modell zu entfernen, da alle couponizations jetzt durch has_one :couponization, dependent: :destroy im CouponCode -Modell zerstört werden.

    
Sbbs 04.09.2014 13:21
quelle