web-dev-qa-db-fra.com

Ruby sur Rails form_for sélectionner un champ avec la classe

Je frappe ma tête contre le mur sur celui-ci. Je souhaite créer une balise de sélection simple à l'aide de la balise f.select, mais rien ne fonctionne. Je mets un exemple ci-dessous:

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

Ok, il s’agit donc d’une liste simple qui, une fois le formulaire soumis, place la valeur dans le object_field. Tout cela fonctionne, mais l'affichage de la source de la page ne comporte pas d'étiquette de classe. Il ne jette pas une erreur, il la saute tout simplement ensemble.

Si quelqu'un a des suggestions, je l'apprécierais grandement.

192
Patrick

Essayez de cette façon:

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

select helper utilise deux hachages d'options, l'un pour les options select et l'autre pour les options html. Il suffit donc de donner les options vides par défaut comme premier paramètre après la liste des éléments, puis d’ajouter votre classe à html_options.

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

429
MBO

Vous pouvez également ajouter l'option Invite comme ceci.

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

Ce travail pour moi

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

Vous pouvez voir ici: http://apidock.com/Rails/ActionView/Helpers/FormBuilder/select

Ou ici: http://apidock.com/Rails/ActionView/Helpers/FormOptionsHelper/select

Le tag choisi a un maximum de 4 agrements, et le dernier agrément est une option html, cela signifie que vous pouvez mettre une option de classe, require, selection ici.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
2
ThienSuBS