Ruby on rails Rails窗体选择以返回对象中的所有参数

Ruby on rails Rails窗体选择以返回对象中的所有参数,ruby-on-rails,forms,select,Ruby On Rails,Forms,Select,我的控制器中有一个列表,如下所示: @relatives = [ { id: '1', firstName: 'John', lastName: 'Smith', related: 'Father' }, { id: '2', firstName: 'Sarah', lastName: 'Smith', related: 'Mother'

我的控制器中有一个列表,如下所示:

@relatives = [
    {
        id: '1',
        firstName: 'John',
        lastName: 'Smith',
        related: 'Father'
    },
    {
        id: '2',
        firstName: 'Sarah',
        lastName: 'Smith',
        related: 'Mother'
    }
]
我想把这个列表放在我视图中选择的表单中。因此,它将是亲属的下拉列表,但它将只显示select中的firstName字段。当用户选择一个对象并提交表单时,整个相对对象将在参数中传递给控制器


我正在查看rails集合\u select API,但不知道如何在表单中选择整个对象。

好的,所以我决定最好的方法是在我的控制器中创建一个散列,其中键是显示文本,值是我对象的JSON表示形式

控制器:

@relatives = {
    "John" => "{id: 1, firstName: 'John', lastName: 'Smith', related: 'Father'}",
    "Sarah" => "{id: 2, firstName: 'Sarah', lastName: 'Smith', related: 'Mother'}"
}
然后在我看来,我将使用选项来选择:

f.select :relative, options_for_select(@relatives)

当用户选择一个值并提交表单时,JSON字符串将在参数中作为值返回。在控制器中,我将把JSON转换回一个模型。谢谢大家的帮助。

这些数据是从哪里生成的?它不是来自数据库还是其他什么?是的,我的数据来自数据库,通过REST服务。所以我可以使用这个f.select:relative,options\u from\u collection\u_select@relatives,'id','firstName',但这只会将:relative参数设置为id字段。我需要:relative参数具有一组包含所有字段的子参数。这有意义吗?@32clemons啊,我以为你在用ActiveRecord。尝试使用:f.select:relative,@relatives.each{r[:firstName],r]}我刚刚尝试过,但是当它提交表单时,实际的:relative参数只是一个包含以下内容的字符串。所以它看起来像是试图返回完整的对象,但它是以字符串的形式出现的。我想知道,我是否需要以不同的方式定义参数?