1

option_from_collection_for_selectのRailsAPI定義を読みました。

 Returns a string of option tags that have been compiled by iterating over the collection   and assigning the result of a call to the value_method as the option value and the text_method as the option text

今、私はレールに非常に慣れていないので、誰かがこれを小さな塊に分解して何が起こっているのかを説明できるかどうか疑問に思っていました。

ありがとうございました

4

1 に答える 1

4

Ruby on Rails APIの例を使用して、属性と属性Personを持つモデルがあると仮定します。idname

新しいフォームを作成し、projectそれをに割り当てるフォームがあるとしpersonます。personこのプロジェクトを割り当てる対象をドロップダウンで選択する必要があるかもしれません。あなたはoptions_from_collection_for_selectこのようなものに使うことができます。

<%= f.label :person, "Assigned Person" %>
<%= f.select(:person, options_from_collection_for_select(@people, "id", "name") )

fちなみに、@projectここではフォームの例の変数を参照しています。)

personこれにより、インスタンス変数に含まれるそれぞれの選択ドロップダウンにオプションが作成されます@people。各<option>タグには、idその属性にperson割り当てられたのがあり、そのオプションのテキストは'sになります。valuepersonname

したがって、@people変数にが含まれている場合[#<Person id: 1, name: "Brock Sampson">, #<Person id: 2, name: "Byron Orpheus">]、次のようなHTML出力が得られます。

<label for="project_person">Assigned person"</label>
<select id="project_person" name="project[person]">
  <option value="1">Brock Sampson</option>
  <option value="2">Byron Orpheus</option>
</select>

それはもっと理にかなっていますか?

于 2012-11-09T13:50:31.633 に答える