ruby on rails - rails - cómo cambiar la clase de una etiqueta para casillas de verificación en simple_form
simple form rails (5)
usando simple_form
podemos cambiar la clase de una etiqueta usando:
label_html => {:class => "myclass"}
pero, ¿cómo hacemos lo mismo cuando tratamos con casillas de verificación?
simple_form
asigna la clase predeterminada de collection_check_boxes
¿Hay alguna manera de cambiar esta clase por defecto?
Debería poder establecer: input_html en la entrada del formulario.
Algo así como:
f.input :something, :as => :check_box, :input_html => { :class => "myclass" }
ian
La forma más fácil de cambiar la clase de etiqueta para una casilla de verificación es insertar lo siguiente en /config/inititializers/simple_form.rb o /config/initializers/simple_form_bootstrap.rb :
config.boolean_label_class = ''form-check-label''
Para obtener la clase de etiqueta tuve que deshacerme de la etiqueta generada automáticamente y escribir la mía propia.
esto está en los carriles 3 con la forma simple 2.1 así que YMMV ....
antes de:
<%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
después:
<%= f.label :remember_me, :class => ''remember-me'' %>
<%= f.input :remember_me, :label => false, :as => :boolean if devise_mapping.rememberable? %>
Quería dar una actualización de esta respuesta en caso de que alguien venga aquí buscando la manera de hacerlo como lo hice yo.
Puede :item_wrapper_class => ''class_goes_here''
la etiqueta una clase con esta opción :item_wrapper_class => ''class_goes_here''
Aquí hay un ejemplo completo:
= user.input :resident,
:collection => [["In the U.S", true],["Outside the U.S.", false]],
:label_method => :first,
:value_method => :last,
:as => :radio_buttons,
:label => "Where is your principle residence?",
:item_wrapper_class => ''inline''
Si lo desea, puede pasar new_class
a la etiqueta haciendo algo como:
<%= f.collection_check_boxes attribute, collection, value_method, text_method do |b|
b.label(class: ''new_class'') {b.check_box + b.text}
end %>