Formulario Ruby on Rails para seleccionar campo con clase


Estoy golpeando mi cabeza contra la pared en este caso. Quiero hacer una simple etiqueta select usando la etiqueta f.select 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, así que básicamente es una lista simple que una vez que se envía el formulario coloca el valor en el object_field. Que todo funciona, pero la visualización de la fuente de página de la etiqueta de clase no está incluido. No arroja un error, simplemente se salta todo junto.

Si alguien tiene alguna sugerencia, se lo agradecería mucho.

Author: Jason Aller, 2010-11-02

4 answers

Intente de esta manera:

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

select helper toma dos hashes de opciones, uno para seleccionar y el segundo para las opciones html. Por lo tanto, 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 a html_options.

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

 402
Author: MBO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-06 02:14:59

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' }) %>
 17
Author: Paing Soe Thaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-16 10:31:08

Este trabajo para mí

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>
 12
Author: Alex Onozor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-12 08:58:21

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

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

La etiqueta Select tiene un máximo de 4 agrument, y el último agrument es la opción html, lo que significa que puede poner la opción class, require, selection aquí.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
 2
Author: ThienSuBS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-09 07:26:23