In un modulo Phoenix Framework, ho una casella di selezione sulla mia pagina che ha un'opzione per impostare un valore appartiene_to a zero.In un modulo Phoenix Framework, come posso impostare di nuovo una relazione di proprietà a null usando un changeset?
<%= select f, :relation_id,
Enum.into(Enum.map(@relations, fn p -> {p.name, p.id} end),
[{"None", nil}]) %>
La forma di solito inviare l'ID, ma quando viene selezionato il valore nullo, esso passa il valore come una stringa vuota:
"relation_id" => ""
io ricevere un errore dal Ecto che il cambiamento non è valido , in quanto si aspetta un intero. Potrei probabilmente intercettare la mappa, impostare il valore su null e passare la mappa aggiornata nel changeset. Ma c'è un modo più semplice per farlo?
Come si precarica il campo 'relations' nel controller? Non riesci a trovare un esempio su come farlo con un changeset. Grazie – Paco
Ahh: la selezione si aspetta solo una lista base di tuple e può essere generata come preferisci. In questo caso, @relations era semplicemente un tiro diretto usando Repo.all: relations = Repo.all (relation_query), e poi passato nella visualizzazione nel comando render. –