Ich kann anscheinend nicht die Syntax finden, um einem von Rails generierten Select-Tag eine Klasse hinzuzufügen collection_select
. Etwas Hilfe?
Ich kann anscheinend nicht die Syntax finden, um einem von Rails generierten Select-Tag eine Klasse hinzuzufügen collection_select
. Etwas Hilfe?
Antworten:
Viele Rails-Helfer verwenden mehrere Hash-Argumente. Das erste sind normalerweise die Optionen zum Steuern des Hilfsprogramms selbst, und das zweite sind die html_options, in denen Sie benutzerdefinierte IDs, Klassen usw. angeben.
Die Methodendefinition sieht folgendermaßen aus:
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
Sie werden das Vielfache '= {}' in der Parameterliste bemerken. Um dies zu verwenden, muss der erste Satz von Optionen, den Sie angeben würden, tatsächlich in geschweiften Klammern stehen:
collection_select(:user, :title, UserTitle.all, :id, :name, {:prompt=>true}, {:class=>'my-custom-class'})
Wenn Sie außer der HTML-Klasse keine Optionen angeben können, fügen Sie einfach einen leeren Hash-Platzhalter ein:
collection_select(:user, :title, UserTitle.all, :id, :name, {}, {:class=>'my-custom-class'})
Zusätzliche API-Dokumentation finden Sie unter: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select
<%= collection_select(:question , :text, Question.all , :id, :text, {:prompt => 'Select Question...'}, {:class=>'input', :name=>'normalSelect', :id=>'normalSelect', :style=>'width:50%', :onchange=>"$('#accordion').accordion('activate',2);$('#blind').show('blind', 500)"}) %>
= f.collection_select :category_id, Category.order(:name), :id, :name, {}, {class: "store-select"}