Vous pouvez le faire lorsque vous utilisez form_for(@model...)
:Rails FormTagHelper manquantes importantes méthodes de sélection et collection_select
collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})
Et la sortie est quelque chose comme ceci:
<select id="subscription_duration" name="subscription[duration]">
<option value="">Please select</option>
<option value="Some">Some</option>
<option value="Values">Values</option>
</select>
Si vous utilisez un formulaire sans un modèle, vous n'avez pas cette belle méthode d'aide pour créer les balises <option>
pour vous. Au lieu de cela, vous devez faire ceci:
select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')
FormHelper et FormOptionsHelper travailler ensemble sur une forme enveloppant un modèle, et ils ont le select
et collection_select
pour rendre la vie facile. Pour une form_tag
plaine (sans modèle), cependant, il n'y a pas FormOptionsTagHelper. FormTagHelper a une méthode select_tag
, mais vous devez écrire manuellement les options qui est un déchet. Il semble que cela a été corrigé quelque part.
Je pourrais écrire mon propre assistant pour me débarrasser de l'écriture manuelle de ces étiquettes d'option, mais c'est ce que fait FormOptionsHelper#collection_select
... Existe-t-il un équivalent pour les formulaires sans modèles?