1

あなたが使用するときにこれを行うことができます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...モデルのないフォームに相当するものはありますか?

4

1 に答える 1

1

selectおよびcollection_selectは、モデルなしで呼び出すことができます。私は通常、2つの重要な単語の組み合わせと、ペアの配列[label、value]を使用して選択します。唯一の欠点は、abc[xyz]の形式を使用する必要があることです。

options_for_selectを使用しようとしましたか?

select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
于 2010-03-02T12:31:18.383 に答える