ruby on rails - rails - cómo preseleccionar una casilla de verificación de asociación con simple_form
simple form rails (4)
Tengo este fragmento de código, mientras uso simple_form
:
= simple_form_for :report do |f|
= f.association :presets,
:collection => @account.presets.collect{ |p| [p.name, p.id] },
:as => :check_boxes
¿Cómo puedo preseleccionar una casilla preset
específica, sabiendo que la ID de este preset
se pasa dentro de params[:preset_id]
? Los atributos del name
HTML de las casillas de verificación son report[preset_ids][]
.
No olvides convertir params [: preset_id] en entero:
params[:preset_id].to_i
Una actualización para todos. la opción: seleccionado no funcionó para mí. Solía:
:checked => [2, 3]
Espero que ayude a alguien.
f.association Realmente hizo el truco, gracias :), para preselecting, guardar, y todo, no tengo la reputación suficiente para votar su respuesta (@ claudio-acciaresi) es por eso que estoy comentando aquí ...
Este es mi fragmento:
<%= f.association :association, collection: Model.all,
value_method: :id, label_method: :name,
as: :check_boxes, include_blank: false %>
Reemplazar símbolo: asociación con la corriente has_many del modelo. Reemplace Model.all, por sus datos de origen.
Espero que sea útil para otra persona :)
Saludos.
De acuerdo con la documentación de simple_form:
El asistente de asociación solo invoca la entrada debajo del capó, por lo que todas las opciones disponibles para: seleccionar,: radio y: check_boxes también están disponibles para la asociación. Además, puede especificar la colección a mano, junto con el aviso:
f.association :company, :collection => Company.active.all(:order => ''name''), :prompt => "Choose a Company"
Entonces, deberías usar algo como esto:
= simple_form_for :report do |f|
= f.association :presets,
:collection => @account.presets.collect{ |p| [p.name, p.id] },
:as => :check_boxes,
:checked => params[:preset_id]
No tengo experiencia con simple_form, pero esto podría ayudar :)