Perché simple_form genera tag di input due volte per i campi booleani (uno nascosto e l'altro no)?Simple_form: perché vengono generati due tag di input al posto di uno?
Nel mio simple_form, ho questo:
<%= form.input :over_phone, as: :boolean, input_html: {checked: true} %>
che genera questo:
<div class="control-group boolean optional order_over_phone">
<label class="boolean optional control-label" for="order_over_phone">Order over phone</label>
<div class="controls">
<input name="order[over_phone]" type="hidden" value="0">
<label class="checkbox">
<input checked="checked" class="boolean optional" id="order_over_phone" name="order[over_phone]" type="checkbox" value="1">
</label>
</div>
</div>
Come si può vedere, un tag input è nascosta con un valore pari a 0 e l'altra è unhidden con un valore di 1. Se ho inviato il modulo, nei parametri di post-ottengo entrambi i valori:
order[over_phone]:0
order[over_phone]:1
Ho un comportamento casuale nella creazione del modello associato a questo campo booleano, quindi mi chiedo se sia causato da simple_form. Questo non succede con i tipi di campi non booleani.
Se hai riscontrato un problema simile, condividi la tua esperienza.
Sto usando simple_form 2.1.0.
Grazie mille! Questo lo spiega. Ho appena capito, il mio problema con il campo "over_phone" era altrove. – Nurbo