Überprüfen Sie alle Verbindungen, bevor Sie sie in Schienen zerstören

8

Ich habe ein wichtiges Modell in meiner Anwendung mit vielen Assoziationen. Wenn ich alle Referenzen in einem Callback von vor_destroy überprüfen möchte, müsste ich etwas tun wie:

%Vor%

Die Frage ist, gibt es eine Möglichkeit, alle Validierungen gleichzeitig durchzuführen? Danke!

    
Dario Barrionuevo 10.06.2011, 01:22
quelle

2 Antworten

23

Sie können die Option :dependent => :restrict an Ihre has_many -Aufrufe übergeben:

%Vor%

Auf diese Weise können Sie das Objekt nur zerstören, wenn keine anderen verknüpften Objekte darauf verweisen.

Andere Optionen sind:

  • :destroy - löscht alle zugehörigen Objekte, die ihre Methode destroy aufrufen.
  • :delete_all - löscht jedes zugehörige Objekt ohne und ruft ihre Methode destroy auf.
  • :nullify - setzt die Fremdschlüssel der verknüpften Objekte auf NULL ohne , um ihre gespeicherten Rückrufe aufzurufen.
Matheus Moreira 10.06.2011, 01:40
quelle
1

Erstellen Sie ein Modul in app / models / concerns / verification_associations.rb mit:

%Vor%

Erstellen Sie einen neuen Übersetzungsschlüssel in app / config / locales / rails.yml

%Vor%

Fügen Sie in Ihren Modellen das Modul ein:

%Vor%     
Diego Mtz 26.06.2014 17:12
quelle

Tags und Links