2010-11-02 4 views
169

Je me tape la tête contre le mur sur celui-ci. Je veux faire une simple balise de sélection en utilisant la balise f.select mais je ne fais rien. Je mets un exemple ci-dessous:Ruby on Rails formulaire_pour sélectionner le champ avec la classe

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

Ok, donc en gros il est une simple liste qu'une fois que le formulaire est soumis, il place la valeur dans le object_field. Tout cela fonctionne, mais en regardant la source de la page, la balise de classe n'est pas incluse. Il ne jette pas d'erreur, il saute tout ensemble.

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

Répondre

383

Essayez de cette façon:

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

select aide prend deux choix hash, un pour sélectionner, et la seconde pour les options html. Donc, tout ce dont vous avez besoin est de donner des options vides par défaut comme premier paramètre après la liste des éléments, puis ajoutez votre classe à html_options.

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

+1

Juste sur l'argent, merci beaucoup, cela a fait l'affaire! Je savais que ça devait être quelque chose de simple et bien sûr que ça l'était. – Patrick

+0

J'ai essayé de cette façon dans haml mais je ne sais pas pourquoi dans la classe "Inspecter Element dans firebug with element" n'est pas vu ici est mon code = f.select (: gender, [['Male', true], [' Femme ', false]], {}, {: class => "drop",: style => "opacité: 0;"}) –

+0

Merci! Cela marche! –

15

Vous pouvez également ajouter l'option rapide comme celui-ci.

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

Ce travail pour moi

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

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

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

tag Select a maximun 4 agrument et dernier agrument est html option, cela signifie que vous pouvez mettre classe, exiger, option de sélection ici.

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

'selected: @ set' fonctionne pour moi quand je l'ai mis dans le premier' {} '. – user1515295