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.

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


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' }) %>

12

Diese Arbeit für mich

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

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}

selected: @setfunktioniert für mich, wenn ich es in die erste stecke {}.
user1515295
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.