使用Ruby on Rails API中的示例,假设您有一个Person具有id属性和name属性的模型。
假设您有一个创建新的表单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>标签都将具有分配给其属性的idof ,并且该选项的文本将是's 。personvaluepersonname
因此,如果您的@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>
这更有意义吗?