【发布时间】:2015-03-19 17:00:21
【问题描述】:
我的控制器中有一个列表,如下所示:
@relatives = [
{
id: '1',
firstName: 'John',
lastName: 'Smith',
related: 'Father'
},
{
id: '2',
firstName: 'Sarah',
lastName: 'Smith',
related: 'Mother'
}
]
我想将此列表放在我认为的表单中。所以这将是一个亲属的下拉列表,但它只会在选择中显示 firstName 字段。当用户选择一个对象并提交表单时,整个相关对象将被传递给参数中的控制器。
我正在查看 rails collection_select API,但不知道如何选择表单中的整个对象。
【问题讨论】:
-
这些数据是从哪里生成的?它不是来自数据库或其他什么吗?
-
是的,我的数据来自数据库,通过 REST 服务。
-
所以我可以使用这个
f.select :relative, options_from_collection_for_select(@relatives, 'id', 'firstName'),但这只会将 :relative 参数设置为 id 字段。我需要 :relative 参数有一组包含所有字段的子参数。这有意义吗? -
@32clemons 啊,我以为你在使用 ActiveRecord。尝试使用这个:
f.select :relative, @relatives.each {|r| [ r[:firstName], r ]} -
我刚试过,但是当它提交表单时,实际的:relative 参数只是一个包含“#<0x0...>0x0...>
标签: ruby-on-rails forms select