12

私が持っているビューでは、fields_for を使用してリレーショナル テーブルのフォーム データを表示しています。ただし、このフォームの一部には選択リストがあります。form_for および fields_for ヘルパー用の label、text_field、text_area ヘルパーがあることがわかります。これらのヘルパーは、既に入力されたモデル オブジェクトから必要な情報を入力します...しかし、同じことを行う選択リスト ヘルパーはどうでしょうか?

これは、fields_for がモデル オブジェクトに既に存在する各項目を繰り返し処理し、インデックスを付けて表示するため、1 対多の関係がある場合に特に役立ちます。

このようなものは存在しますか?

4

2 に答える 2

30

使用できるいくつかの選択ヘルパーメソッドがあります。最も一般的なのはcollection_selectです。これはbelongs_to、モデルに関連付けがあり、選択メニューを使用してこれを設定する場合に最適です。

<%= f.collection_select :category_id, Category.all, :id, :name %>

他の状況では、より一般的なselectメソッドがあります。ここでは、提供したい一連のオプションを提供できます。

<%= f.select :priority, [["Low", 1], ["Medium", 2], ["High", 3]] %>

各配列要素の最初の値は選択オプションの名前であり、2番目の値は属性に割り当てられる値です。

(日付と時刻の)他の多くの選択メニューがありますが、上記の2つはほとんどの状況をカバーするはずです。これらのメソッドは、form_forまたはの両方で機能しfields_forます。

于 2009-08-09T22:20:06.183 に答える
2

selectまたはcollection_selectを探しています。どちらも form_for または fields_for ブロックで使用できます。ドキュメントの form_for でそれらを使用する方法の例があります

于 2009-08-09T22:09:56.283 に答える