Ruby on Rails form_para seleccionar campo con clase

200

Me estoy golpeando la cabeza contra la pared en este caso. Quiero hacer una etiqueta de selección simple usando la f.selectetiqueta pero nada de lo que hago funciona. Pongo un ejemplo a continuación:

<%= f.select(:object_field, ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 4'], :class => 'my_style_class')%>

Ok, entonces básicamente es una lista simple que una vez que se envía el formulario coloca el valor en el object_field. Todo eso funciona, pero al ver el origen de la página, la etiqueta de clase no está incluida. No arroja un error, simplemente lo omite todo junto.

Si alguien tiene alguna sugerencia, lo agradecería enormemente.

Patricio
fuente

Respuestas:

449

Intenta de esta manera:

<%= f.select(:object_field, ['Item 1', ...], {}, { :class => 'my_style_class' }) %>

selecthelper toma dos opciones hashes, una para seleccionar y la segunda para las opciones html. Entonces, todo lo que necesita es dar opciones vacías predeterminadas como primer parámetro después de la lista de elementos y luego agregar su clase html_options.

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

MBO
fuente
2
Justo en el dinero, muchas gracias, ¡eso funcionó! Sabía que tenía que ser algo simple y, por supuesto, lo era.
Patrick
Lo intenté de esta manera en haml pero no sé por qué en la clase "Inspeccionar elemento en firebug con elemento" no se ve aquí mi código = f.select (: gender, [['' Male ', true], [' Female ', false]], {}, {: class => "drop"
,:
@GaganGami Lo hice funcionar con este código: la = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) opacidad establecida en 0 hará que su campo sea invisible.
Robert
¿Alguien sabe qué deberíamos hacer si la selección f.se pasa un bloque al final? La clase no parece pasar con ninguna combinación que he probado.
Tashows
Gracias por la explicación
Abhilash
21

También puede agregar una opción de solicitud como esta.

<%= f.select(:object_field, ['Item 1', 'Item 2'], {include_blank: "Select something"}, { :class => 'my_style_class' }) %>
Paing Soe Thaw
fuente
12

Este trabajo para mi

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>
Alex Onozor
fuente
2

Puedes ver aquí: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

O aquí: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Seleccionar etiqueta tiene un máximo de 4 grupos, y el último grupo es la opción html, lo que significa que puede poner la opción de clase, requerimiento y selección aquí.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
ThienSuBS
fuente
selected: @setfunciona para mí cuando lo pongo en el primero {}.
user1515295