使用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>
标签都将具有分配给其属性的id
of ,并且该选项的文本将是's 。person
value
person
name
因此,如果您的@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>
这更有意义吗?