Rails 从 select 到 return 对象中的所有参数
Rails form select to return all params in an object
我的控制器中有一个列表,如下所示:
@relatives = [
{
id: '1',
firstName: 'John',
lastName: 'Smith',
related: 'Father'
},
{
id: '2',
firstName: 'Sarah',
lastName: 'Smith',
related: 'Mother'
}
]
在我看来,我想将此列表以 select 的形式列出。所以它会是亲戚的下拉列表,但它只会显示 select 中的 firstName 字段。当用户 select 一个对象并提交表单时,整个 相关对象将在参数中传递给控制器。
我正在查看 rails collection_select API,但无法弄清楚如何 select 表单中的整个对象。
好吧,所以我决定完成这个的最好方法是在我的控制器中创建一个散列,键是显示文本,值是我的对象的 JSON 表示。
控制器:
@relatives = {
"John" => "{id: 1, firstName: 'John', lastName: 'Smith', related: 'Father'}",
"Sarah" => "{id: 2, firstName: 'Sarah', lastName: 'Smith', related: 'Mother'}"
}
那么在我看来,我将使用 options_for_select:
f.select :relative, options_for_select(@relatives)
当用户select一个值并提交表单时,JSON字符串将作为值返回到参数中。在控制器中,我只是将 JSON 转换回模型。谢谢大家的帮助。
我的控制器中有一个列表,如下所示:
@relatives = [
{
id: '1',
firstName: 'John',
lastName: 'Smith',
related: 'Father'
},
{
id: '2',
firstName: 'Sarah',
lastName: 'Smith',
related: 'Mother'
}
]
在我看来,我想将此列表以 select 的形式列出。所以它会是亲戚的下拉列表,但它只会显示 select 中的 firstName 字段。当用户 select 一个对象并提交表单时,整个 相关对象将在参数中传递给控制器。
我正在查看 rails collection_select API,但无法弄清楚如何 select 表单中的整个对象。
好吧,所以我决定完成这个的最好方法是在我的控制器中创建一个散列,键是显示文本,值是我的对象的 JSON 表示。
控制器:
@relatives = {
"John" => "{id: 1, firstName: 'John', lastName: 'Smith', related: 'Father'}",
"Sarah" => "{id: 2, firstName: 'Sarah', lastName: 'Smith', related: 'Mother'}"
}
那么在我看来,我将使用 options_for_select:
f.select :relative, options_for_select(@relatives)
当用户select一个值并提交表单时,JSON字符串将作为值返回到参数中。在控制器中,我只是将 JSON 转换回模型。谢谢大家的帮助。