Frage

Ich baue eine Form in Rails3 und Formtastic. Ich habe das folgende Feld:

<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"} %>

Dies erzeugt HTML ähnlich wie:

<input id="post_one" name="post" type="radio" value="one" />Awesome</label>
<input id="post_two" name="post" type="radio" value="two" />Great</label>
<input id="post_three" name="post" type="radio" value="three" /> Nice</label>

Das funktioniert einwandfrei!

Jetzt würde ich gerne wissen, wie ich eine Option übergeben könnte, die "großartig" als Standardwert (ausgewählt) markiert würde. Ich habe versucht, Folgendes zu tun, aber ich kann es nicht zum Laufen bringen.

<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"}, :default => "one" %>

Ich habe auch versucht, einzugeben :selected und :checked Anstatt von :default Aber leider funktioniert es nicht.

Kennt jemand einen Weg, dies zu tun?

Vielen Dank!


Bearbeiten: Aditya bringt einen sehr guten Punkt. Einige suchen nach Dieser hilfreiche Tipp.

War es hilfreich?

Lösung

Haben Sie versucht, den Wert des Unterrichtsattributs Ihres Modells auf den Standardwert festzulegen? Sie könnten dies kurz vor dem Starten des Formulars oder im Controller tun oder im besten Weg darin, dies im Modell initialisieren zu tun? Die Ansicht ist möglicherweise nicht der beste Ort, um IMHO zu sterben.

Andere Tipps

Stellen Sie die HTML -Optionen auf eine bestimmte Funkeingangsoption mit einem Drittelement im Array für ein Sammlungsmitglied wie folgt ein:

<%= f.input :author, :as => :radio, :collection => [["Test", 'test'], ["Try", "try", {:disabled => true}]]

Es gibt keine Option mehr, dies in der Ansicht zu tun. Die korrekte Art und Weise, das Modell standardmäßig mit dem richtigen Wert zu initialisieren oder das Modell in diesen Zustand in den Controller zu setzen, wie von Aditya beschrieben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top