simple_fields_for simple rails generic form for example ruby-on-rails formtastic simple-form

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 %>