simple_form_for simple rails form example collection ruby-on-rails checkbox associations simple-form

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 :)