Ruby on Rails form_für Auswahlfeld mit Klasse

200

Ich schlage meinen Kopf gegen die Wand. Ich möchte ein einfaches Auswahl-Tag mit dem f.selectTag erstellen, aber nichts, was ich tue, funktioniert. Ich habe unten ein Beispiel gegeben:

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

Ok, im Grunde ist es eine einfache Liste, die nach dem Absenden des Formulars den Wert in das Feld einfügt object_field. Das alles funktioniert, aber beim Anzeigen der Seitenquelle ist das Klassen-Tag nicht enthalten. Es gibt keinen Fehler aus, es überspringt einfach alles zusammen.

Wenn jemand irgendwelche Vorschläge hat, würde ich es sehr schätzen.

Patrick
quelle

Antworten:

449

Versuchen Sie Folgendes:

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

selectDer Helfer verwendet zwei Options-Hashes, einen für die Auswahl und einen für HTML-Optionen. Sie müssen also nur leere Standardoptionen als ersten Parameter nach der Liste der Elemente angeben und dann Ihre Klasse hinzufügen html_options.

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

MBO
quelle
2
Direkt am Geld, vielen Dank, das hat den Trick gemacht! Ich wusste, dass es etwas Einfaches sein musste und natürlich war es das auch.
Patrick
Ich hatte es in haml auf diese Weise versucht, weiß aber nicht, warum in der Klasse "Element in Firebug mit Element untersuchen" hier nicht angezeigt wird. Mein Code = f.select (: gender, [['Male', true], ['Female) ', false]], {}, {: class => "drop" ,: style => "opacity: 0;"})
Gagan Gami
@GaganGami Ich habe es geschafft, mit diesem Code zu arbeiten: Die = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) auf 0 gesetzte Deckkraft macht Ihr Feld unsichtbar.
Robert
Weiß jemand, was wir tun sollen, wenn die f.select am Ende einen Block übergeben wird? Die Klasse scheint keine Kombination zu durchlaufen, die ich versucht habe.
Tashows
Vielen Dank für die Erklärung
Abhilash
21

Sie können auch eine solche Eingabeaufforderungsoption hinzufügen.

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

Diese Arbeit für mich

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

Sie können hier sehen: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

Oder hier: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Das Select-Tag hat das Agrument Maximun 4, und das letzte Agrument ist die HTML-Option. Dies bedeutet, dass Sie hier die Auswahloption für Klasse, Anforderung und Auswahl einfügen können.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
ThienSuBS
quelle
selected: @setfunktioniert für mich, wenn ich es in die erste stecke {}.
user1515295