在我看来,我使用fields_for来显示关系表的表单数据。但是,此表单的一部分将有可供选择的列表。我看到有form_for和fields_for助手的label,text_field,text_area帮助器,它们将填充已经填充的模型对象所需的信息......但是选择列表帮助器会做同样的事情呢?
当我具有一对多关系时,这将特别有用,因为fields_for遍历已经在模型对象中的每个项目并使用索引显示它。
这样的事情是否存在?
答案 0 :(得分:28)
您可以使用几种选择辅助方法。最常见的是collection_select。如果您在模型上有belongs_to
关联,并且您想使用选择菜单来设置此项,那就太棒了。
<%= f.collection_select :category_id, Category.all, :id, :name %>
对于其他情况,有更通用的select方法。在这里,您可以提供一系列您想要提供的选项。
<%= f.select :priority, [["Low", 1], ["Medium", 2], ["High", 3]] %>
每个数组元素中的第一个值是select选项的名称,第二个值是将分配给该属性的值。
还有许多其他选择菜单(日期和时间),但上述两个应涵盖大多数情况。这些方法适用于form_for
或fields_for
。
答案 1 :(得分:2)
您正在寻找select或collection_select。两者都可以在form_for或fields_for块中使用。有关如何在文档
中的form_for中使用它们的示例