Rails FormTagHelper に重要な select メソッドと collection_select メソッドがありません

StackOverflow https://stackoverflow.com/questions/2360870

  •  23-09-2019
  •  | 
  •  

質問

を使用するときにこれを行うことができます 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>')

フォームヘルパーと フォームオプションヘルパー 一緒に仕事をする モデルをラッピングするフォーム, 、そして彼らは select そして collection_select 生活を楽にするために。平野の場合 form_tag (モデルなし) ただし、そのような FormOptionsTagHelper はありません。 フォームタグヘルパー があります select_tag メソッドですが、オプションを手動で書き出す必要があり、無駄です。これはどこかで修正されたようです。

独自のヘルパーを作成して、これらのオプション タグを手動で記述する必要をなくすこともできますが、それが目的です。 FormOptionsHelper#collection_select そうですか...モデルのないフォームに相当するものはありますか?

役に立ちましたか?

解決

選択する そして コレクション選択 モデルなしで呼び出すことができます。私は通常、2 つの重要な単語の組み合わせと、[ラベル、値] のペアの配列を選択して使用します。唯一の欠点は、abc[xyz] 形式を使用しなければならないことです。

使おうとしたんですね 選択用のオプション?

select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top