Wie wähle ich einen Standardwert für eine Sammlung von Optionsfeldern in Formtastic aus?
-
13-10-2019 - |
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.
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.