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.