あなたが使用するときにこれを行うことができますform_for(@model...)
:
collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})
そして、出力は次のようになります。
<select id="subscription_duration" name="subscription[duration]">
<option value="">Please select</option>
<option value="Some">Some</option>
<option value="Values">Values</option>
</select>
モデルのないフォームを使用する場合、<option>
タグを作成するための優れたヘルパーメソッドがありません。代わりに、これを行う必要があります。
select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')
FormHelperとFormOptionsHelperは、モデルをラップするフォームで連携して動作し、select
とを使用して作業をcollection_select
簡単にします。ただし、プレーンform_tag
(モデルなし)の場合、そのようなFormOptionsTagHelperはありません。 FormTagHelperにはselect_tag
メソッドがありますが、オプションを手動で書き出す必要があり、無駄です。これはどこかで修正されたようです。
これらのオプションタグを手動で書くことを取り除くために自分のヘルパーを書くことはできますが、それは何をするのですかFormOptionsHelper#collection_select
...モデルのないフォームに相当するものはありますか?