Schienen select_tag - Einstellung include_blank und Auswahl einer default-Wert
select_tag :country_id, options_from_collection_for_select(Country.order('priority desc, name asc'), "id", "name"), { :prompt => 'Select a country', :include_blank => 'None' } %>
Funktioniert wie erwartet, außer :include_blank => 'None'
. Macht eine leere option. Wie Z:
<option value=""></option>
Zweite, mit der select_tag
. Wie kann ich einen Standardwert angeben. Zum Beispiel, wenn ich die select-box zum auswählen eines bestimmten Landes. Ich habe versucht, das hinzufügen :selected => Country.first
ohne Erfolg:
<%= select_tag :country_id, options_from_collection_for_select(Country.order('priority desc, name asc'), "id", "name"), { :prompt => 'Select` a country', :include_blank => 'None', :selected => Country.first } %>
Oben immer wählt "Select a country".
Warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leeren Wert
Ich glaube nicht, dass diese immer genügend Aufmerksamkeit auf die anderen Beiträge:
include_blank
auf eineselect_tag
nicht respektieren die Zeichenfolge übergeben, um es. Es wird nur interpretiert es als eintrue
/false
Wert.Um einen leeren Wert für
select_tag
mit einer bestimmten Zeichenfolge, die Sie verwenden müssenprompt
.Ausgewählten Wert
Weil
select_tag
gehört nicht zu einem Objekt, die Art und Weiseselect
funktioniert, müssen Sie den ausgewählten Wert als Teil des Optionen. übergeben Sie den ausgewählten Wert in dieoptions
param von derselect_tag
.In Ihrem Fall, Sie sind mit
options_from_collection_for_select
zu helfen, generieren die Optionen. Diese Methode nimmt eine vierte parameter, die angibt, welche option ausgewählt werden sollte.