Frage

Sie können dies tun, wenn Sie form_for(@model...) verwenden:

collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})

Und der Ausgang ist so etwas wie folgt aus:

<select id="subscription_duration" name="subscription[duration]">
    <option value="">Please select</option>
    <option value="Some">Some</option>
    <option value="Values">Values</option>
</select>

Wenn Sie ein Formular verwenden ohne ein Modell, Sie haben nicht diese netten Helfer Verfahren die <option> Tags für Sie zu erstellen. Stattdessen haben Sie, dies zu tun:

select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')

FormOptionsHelper arbeiten gemeinsam an einem Form ein Modell Einwickeln, und sie haben die select und collection_select Leben zu erleichtern. Für einen einfachen form_tag (ohne ein Modell), jedoch gibt es keine solche FormOptionsTagHelper. FormTagHelper hat eine select_tag Methode, aber Sie müssen manuell die Optionen schreiben, die eine Verschwendung ist. Es scheint, wie dies irgendwo behoben wurde.

Ich konnte meinen eigenen Helfer schreiben manuell diese Option Tags zu schreiben, um loszuwerden, aber das ist, was FormOptionsHelper#collection_select ist ... Gibt es ein Äquivalent gibt für Formen ohne Modelle?

War es hilfreich?

Lösung

wählen und collection_select kann ohne Modell genannt werden. I in der Regel eine Kombination von zwei signifikanten Wörter verwenden, und eine Reihe von Paaren [label, value] auszuwählen. Der einzige Nachteil ist mit dem Format abc verwenden [xyz].

Sie haben versucht, options_for_select ?

select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top