2013-03-06 3 views
16

Mein tag:Rails select-Tag ausgewählt Wert

<%= select_tag(:option, options_for_select([['All', 1], ['Co', 2], ['Bought', 3], ['View', 4], ['Top API', 5], :selected => :option ])) %> 

Wie kann ich den gewählten Wert eingestellt, auf die Option ausgewählt ist. Wenn ich zum Beispiel ['Bought', 3] auswähle und abschicke, wird die Option ['All', 1] ausgewählt. Wie kann ich den ausgewählten Wert anzeigen, nachdem das Formular abgeschickt wurde?

+0

Wenn Sie die Option '[ 'gekauft', 3] 'im Browser und dann abschicken, wo siehst du, dass "['All', 1] 'ausgewählt wurde? Können Sie den Rest des Formulars sowie den für die Formularaktion relevanten Controller-Code anzeigen? – PinnyM

+0

Die Optionen sind an der falschen Stelle (']') geschlossen, daher sieht der Browser ': selected =>: option' als eine Option. Behebung des Problems, Sie können den Browser aktualisieren und die ausgewählte Option bleibt ausgewählt. – gabrielhilal

Antwort

25

Sie haben alles richtig, schließen Sie einfach das ] Optionen vor dem :selected => :option:

statt ...], selected: :option ])), Änderung ...]], selected: :option))

Ihr Code sollte also lauten:

<%= select_tag(:option, options_for_select([['All', 1], ['Co', 2], ['Bought', 3], ['View', 4], ['Top API', 5]], selected: :option)) %> 
+1

Wie spezifiziert das, welcher Wert ausgewählt ist? – 0112

10

Versuchen Sie folgendes:

<%= select_tag(:option, options_for_select([['All', 1], ['Co', 2], ['Bought', 3], ['View', 4], ['Top API', 5]], :selected => params[:option])) %> 

Das funktioniert perfekt in Schienen 4.2

1

Falls Sie eine Klasse zum Tag hinzuzufügen:

<%= select_tag(:option, options_for_select([["Option 1",1],["Option 2",2],["Option 3",3]], params[:option]), class:"select") %> 

Worrking in Schienen 5.