Ich habe ein Missionsmodell, das viele Aufgaben hat, und die Aufgabe gehört zur Mission
Zur Sicherheit habe ich diese Validierung am Aufgabenmodell vorgenommen:
validates_presence_of :mission_id
validates_numericality_of :mission_id
Das Problem ist jedoch, dass beim Erstellen einer Mission und Hinzufügen von Aufgaben wie dieser:
@mission.tasks.build
Die Validierung ergibt einen Fehler, da die Missions-ID in der Aufgabe null ist (die Mission wurde noch nicht erstellt).
Wenn ich die Validierung lösche, wird der Auftrag und die Aufgabe erfolgreich erstellt, aber wie kann ich die Validierung beibehalten und trotzdem funktionieren? Ich könnte einen Rückruf nach dem Speichern durchführen, aber ich glaube nicht, dass das richtig ist, weil ich keine Aufgaben ohne eine mission_id speichern möchte.
P.S.. Ich verstecke mein Einsatzgebiet auf dem Formular. Wenn ich es sichtbar mache, wird die aktuelle Mission angezeigt und alles ist in Ordnung. Aber wenn ich es ausblende, kommt der Fehler.
<%= f.hidden_field :mission, :label => "Missão" %>
Setzt das Formular die vom Controller bei der neuen Aktion angegebenen Attribute zurück?