12

在我拥有的视图中,我使用 fields_for 显示关系表的表单数据。但是,此表单的一部分将具有可供选择的选择列表。我看到 form_for 和 fields_for 助手的 label、text_field、text_area 助手将填充已经填充的模型对象所需的信息......但是选择列表助手会做同样的事情呢?

当我有一对多关系时,这将特别有用,因为 fields_for 遍历模型对象中已经存在的每个项目并使用索引显示它。

这样的事情存在吗?

4

2 回答 2

30

您可以使用几种选择辅助方法。最常见的是collection_select。如果您belongs_to在模型上有关联并且您想使用选择菜单来设置它,这将非常有用。

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

对于其他情况,有更通用的选择方法。在这里,您可以提供一系列您想要提供的选项。

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

每个数组元素中的第一个值是选择选项的名称,第二个是分配给属性的值。

还有许多其他选择菜单(用于日期和时间),但以上两个应该涵盖大多数情况。这些方法都适用于form_forfields_for

于 2009-08-09T22:20:06.183 回答
2

您正在寻找selectcollection_select。两者都可以在 form_for 或 fields_for 块中使用。文档中有关于如何在 form_for 中使用它们的示例

于 2009-08-09T22:09:56.283 回答