Ich habe versucht, eine Ausnahme in der before_save
Methode in einem Schienenmodell hinzuzufügen, aber in der Ansicht existiert keine Fehlermeldung.Wie fügt man dem Rails-Modell Fehler hinzu?
Modell:
before_save do
doing_some_stuff
begin
File.open('some_file', 'w+') do |file|
if file.write(file_content)
return true
else
return false
end
end
rescue => e
self.errors.add(:base, e.message)
return false
end
Ausblick:
<%= @model.errors.any? %>
Dies ist immer falsch.
Wie füge ich Fehlermeldungen zum Modell hinzu?
EDIT:
Das Problem war, hatte ich eine Umleitung nach der update_attribute Funktion stattdessen die Aktion erneut zu leisten. Danke für Hilfe.
Sie sollten in Betracht ziehen, eine Methode zu erstellen, die Ihre "before_create" -Logik behandelt. Wie das 'before_create: do_stuff' –
Woher wissen Sie, dass File.open eine Ausnahme auslöst? Sind Sie sicher, dass es nicht nur false von dieser else Anweisung im offenen Block zurückgibt? –
Ich hatte den Fehler über logger.info in die Logdatei ausgeloggt, der Fehler wird im Rettungsteil behoben – SonIcco