In einem Phoenix Framework-Formular habe ich ein Auswahlfeld auf meiner Seite, das eine Option hat, einen Wert für "belongs_to" auf null zu setzen.Wie kann ich in einer Phoenix Framework-Form eine angies_to-Relation mithilfe eines Changesets auf null zurücksetzen?
<%= select f, :relation_id,
Enum.into(Enum.map(@relations, fn p -> {p.name, p.id} end),
[{"None", nil}]) %>
Die Form in der Regel die ID senden würde, aber wenn der Nullwert ausgewählt wird, geht es um den Wert als eine leere Zeichenfolge:
"relation_id" => ""
erhalte ich einen Fehler von Ecto, dass die changeset ungültig , da es eine Ganzzahl erwartet. Ich könnte wahrscheinlich die Karte abfangen, den Wert auf null setzen und die aktualisierte Karte in den Änderungssatz übergeben. Aber gibt es einen einfacheren Weg, dies zu tun?
Wie laden Sie das 'relations' Feld in Ihrem Controller? Kann kein Beispiel dafür finden, wie man es mit einem Changeset macht. Danke – Paco
Ahh - die Auswahl erwartet nur eine Grundliste von Tupeln und kann beliebig generiert werden. In diesem Fall war @relations nur ein direkter Pull mit Repo.all: relations = Repo.all (relations_query) und dann in der Ansicht im Befehl render übergeben. –