Ho un modello MyModel
con un attributo serializzato a
, che descrive una serie di simboli.Visualizzare un elenco di caselle di controllo invece di selezionare più
Questo codice funziona:
<% form_for @my_model do |f| %>
<%= f.select :a, MyModel::AS, :multiple => true) %>
<% end %>
I parametri sono corretti:
{ :my_model => { :a => [:a_value1, :a_value2] } }
voglio trasformare questo multipla selezionare in una serie di caselle di controllo, in questo modo:
<% form_for @my_model do |f| %>
<% MyModel::AS.each do |a_value|
<%= f.check_box(:a_value) %>
<% end %>
<% end %>
Funziona anche, ma i parametri non sono affatto gli stessi:
{ :my_model => { :a_value1 => 1, :a_value2 => 1 } }
penso a 2 soluzioni per tornare alla prima soluzione ...
- trasformare la mia
check_box
in , sostituire selezione multipla, e aggiungere un po javascript per 'controllare' selezionare i valori quando l'utente clicca su check_box_tags. Quindi, il parametro sarà lo stesso direttamente nel controller. - Aggiungere un codice litte nel controller per "adattare" i miei parametri.
Quale soluzione è la meno brutta? O c'è un altro?
Passare 'nil' alla fine e funzionerebbe come controllo previsto [questo] (http://apidock.com/rails/ActionView/Helpers/FormHelper/check_box) – Viren
@Viren Grazie del suggerimento. – pierallard
Modifica la tua risposta se vuoi, c'è anche un errore di battitura lì. Dopo '<% MyModel :: AS.each do | a_value |' need '%>'. Sto solo dicendo – ksugiarto