Ich habe Sendungen und Rechnungen.
Rechnung gehört zum Versand
Sendung hat eine Rechnung
Wenn die Sendung eine Rechnung hat, sollte die Sendung nicht gelöscht werden können. Ich muss dies in den Modellen einrichten, weil ich ActiveAdmin verwende.
Also habe ich das in sending.rb
gemacht %Vor%Aber ich bekomme nur eine gelbe Nachricht mit der Nachricht "Sendung kann nicht gelöscht werden", aber sie wurde tatsächlich gelöscht.
Wie kann ich verhindern, dass die Sendung gelöscht wird?
Der before_destroy
-Rückruf benötigt einen Wahr / Falsch-Wert, um zu bestimmen, ob er ausgeführt werden soll oder nicht.
Fügen Sie return false
zu Ihrem check_for_invoice
wie folgt hinzu:
Aus den Dokumenten :
Wenn ein before_ * Callback false zurückgibt, werden alle späteren Callbacks und die zugehörige Aktion abgebrochen.
Versuchen Sie es also:
%Vor%Für Schienen 4:
%Vor% wird es tun. Wenn Sie eine Ausnahme anstelle eines Fehlers wünschen, verwenden Sie :restrict_with_exception
. Weitere Informationen finden Sie unter die entsprechende api docs-Seite .
For Rails 3 (vielleicht auch früher) versuchen:
%Vor%Tags und Links ruby ruby-on-rails-3 ruby-on-rails