Ruby on rails RubyonRails如何使用FormOptionHelpers创建动态下拉列表

Ruby on rails RubyonRails如何使用FormOptionHelpers创建动态下拉列表,ruby-on-rails,ruby,Ruby On Rails,Ruby,我查看了一些教程,但是我被这个方法中的参数弄糊涂了 集合\选择(对象、属性、集合、值\方法、文本\方法、选项={}、html \选项={}) 我有一个地图模型,包括::area,:system,:file 我想把数据库中的:区域读到一个下拉列表中,让用户选择一个 我已经在视图中创建了@map=map.all 方法应该是什么 特别是参数“属性”。在很多教程中,人们把“id”放在这里。但我不知道“id”是什么,在我的情况下,我不需要任何其他值,只需要“区域” 我不太清楚你在这里问什么,但是如果你想在

我查看了一些教程,但是我被这个方法中的参数弄糊涂了

集合\选择(对象、属性、集合、值\方法、文本\方法、选项={}、html \选项={})

我有一个地图模型,包括::area,:system,:file

我想把数据库中的:区域读到一个下拉列表中,让用户选择一个

我已经在视图中创建了@map=map.all

方法应该是什么


特别是参数“属性”。在很多教程中,人们把“id”放在这里。但我不知道“id”是什么,在我的情况下,我不需要任何其他值,只需要“区域”

我不太清楚你在这里问什么,但是如果你想在html表单中使用下拉选择,这个例子会对你有帮助吗

<% nations = {'United States of America' => 'USA', 'Canada' => 'Canada', 'Mexico' => 'Mexico', 'United Kingdom'=> 'UK'} %>
<% list = nations.sort %>
<%= f.select :country, list, %>
‘美国’、‘加拿大’=>‘加拿大’、‘墨西哥’=>‘墨西哥’、‘英国’=>‘英国’}%>

这里的nations是一个国家的哈希,然后list成为该哈希的排序副本。然后创建一个html下拉列表作为表单“f”的一部分。“:country”是数据连接到的模型的一部分,而列表是用

填充下拉列表的选项。您的问题不清楚该区域填充的模型是什么

通常,集合_select用于相关模型之间

例如

类别
为产品选择“类别”时,您的视图将显示以下内容:

<%= f.collection_select(:category_id, :id, Category.all, :name, include_blank: true) %>

这样做的目的是将Product.category\u id指定为使用category.id的值填充的属性。这些值来自Category.all集合,Category.name是“选择”对话框中显示的项目。最后一个(可选)参数表示包含一个空白条目

您可能需要以下内容:

<%= f.collection_select(:map_id, :id, @map, :area) %>

但是,如果尝试填充的模型具有面积属性(而不是链接到地图的ID),则可能需要使用:

<%= f.collection_select(:area, :area, @map, :area) %>

这指定接收表的area属性将填充Map的area属性,该属性也将用作select中的“描述”

<%= f.collection_select(:area, :area, @map, :area) %>