我一直在查看来自http://api.rubyonrails.org/和其他地方的Stack Overflow,Rails文档中的很多帖子。我绝对不知道应该通过多少参数。我见过4和5.这就是我想要做的。
我有一个国家/地区名称的表单,我希望使用另一个包含国家/地区列表的表格更改为下拉列表。
我表单上的当前代码是:
<%= f.text_field :country %>
国家/地区位于另一个表用户。我没有让人们在国家/地区输入内容,而是希望他们从表格中选择国家/地区列出名称而不是表格中的ID,然后使用表格中的名称来更新<表格上的强>国家用户。
我还在学习当前的数据库术语。我习惯使用数据库,数据库中的表,表中的记录/行,记录中的field.column等。
我如何编写collection_select语句以生成另一个表中的国家/地区名称列表?
我花了几个小时几乎整天试图解决这个问题。不知何故,我能够弄清楚如何使用seeds.rb来加载我的Country表。
我正在使用Rails 3.2.3和Ruby 1.9.3。我正在使用PostgreSQL数据库。
任何帮助都将不胜感激。
答案 0 :(得分:0)
根据是否已设置与其他表的正确关系“如belongs_to或has_many”,您可以执行类似的操作。
<%= collection_select(:some_other_active_record, :country, Country.all, :id, :name) %>
应呈现为
<select name="some_active_record[country_id]">
<option value="1">USA</option>
<option value="2">Canada</option>
<option value="3">Mexico</option>
[...]
</select>
您应该阅读此页http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select
第一个参数是用于表单所用的select标记的类(“Active Record / table”)的实例。
第二个是方法调用,用于获取与select标记对应的对象的属性,例如country all_to你的主要活动记录,即“country_id / contry_ids”
第三个参数是表示标记的对象数组。基本上你所有的东西,即......“Country.all”
第四个是方法的名称,当在集合成员上调用时,它返回表示标记的子对象数组。基本上是通过Country.all找到的国家实例的id,它被放在html值=“some country id”
下一个参数是如何显示国家/地区的名称。
接下来是一组我不打算过的选项。