Ik kan de syntaxis niet vinden om een klasse toe te voegen aan een geselecteerde tag die is gegenereerd door Rails collection_select
. Wat hulp?
Antwoord 1, autoriteit 100%
Veel Rails-helpers gebruiken meerdere hash-argumenten. De eerste zijn meestal de opties om de helper zelf te besturen, en de tweede zijn de html_options waar je aangepaste id’s, klassen enz. specificeert.
De methodedefinitie ziet er als volgt uit:
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
Je ziet het veelvoud ‘= {}’ in de lijst met parameters. Om dit te gebruiken, moet de eerste set opties die u zou specificeren tussen accolades staan:
collection_select(:user, :title, UserTitle.all, :id, :name, {:prompt=>true}, {:class=>'my-custom-class'})
Als je geen opties hebt om op te geven naast de html-klasse, plaats dan gewoon een lege hash-placeholder:
collection_select(:user, :title, UserTitle.all, :id, :name, {}, {:class=>'my-custom-class'})
Aanvullende API-documentatie is beschikbaar op:
http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select
Antwoord 2, autoriteit 5%
= f.collection_select :category_id, Category.order(:name), :id, :name, {}, {class: "store-select"}
Antwoord 3
Voor het geval ik met hetzelfde probleem worstelde, deel ik mijn resultaat, ik probeerde gewoon {},{}
in te voeren, dus ik moest explicieter zijn als volgt: options = {}, html_options = {}
, omdat het bij mij niet werkte.
<div class="field">
<%= form.label :country_id %>
<%= form.collection_select :country_id, @countries,:id, :name, options = {:prompt => 'Select a Country...'},
html_options = {class: "dropdown"}%>
</div>
Met vriendelijke groet!