提问人:andgarzonmal 提问时间:9/12/2023 更新时间:9/13/2023 访问量:33
如何在 Rails 参数中将多个选择值作为数组发送?
How to Send Multiple Select Values as an Array in Rails Params?
问:
我在 Rails 应用程序中有一个复杂的表单,我在其中使用模板的多个实例。每个模板都包含产品变体的下拉列表。提交表单后,我想将每个下拉列表的选定值作为参数中的数组发送。
这是我的表单的简化示例:
<div class="nested-form-wrapper">
<!-- Other form fields -->
<div class="variatios_form_container"></div>
<template id="variationsFormTemplate">
<div data-controller="variations">
<select id="variation_select" data-action="change->variations#change">
<!-- Options -->
</select>
<div>
<%= f.label :variation_options, 'Select an option' %>
<%= f.select :variation_options, [], {}, {data: {variations_target: "optionsSelect"}} %>
</div>
</div>
</template>
</div>
在我的控制器中,我想处理这些多个variation_options值。理想情况下,它们将作为参数中的数组出现,如下所示:
params[:product_stock][:variation_options] = [val1, val2, val3, ...]
如何构建我的表单或控制器来实现这一点?
我尝试过什么:
在“选择名称”中设置数组:尝试将选择命名为 variation_options[] 以使其成为数组,但收到 NoMethodError。
<%= f.select 'variation_options[]', [], {}, {data: {variations_target: "optionsSelect"}} %>
分配唯一 ID:我试图通过递增计数器为每个选择元素分配唯一的 ID,但这并不能解决将它们作为参数中的数组发送的问题。
答:
0赞
David
9/13/2023
#1
设置有诀吗?multiple: true
select
<%= f.select :variation_options, [], {multiple: true}, {data: {variations_target: "optionsSelect"}} %>
评论
0赞
andgarzonmal
9/13/2023
不是真的,我不希望在一个选择标签中选择多个选项,我想要的是多次复制模板,并且对于每个选择标签,取值以将其作为参数中的数组传递
评论
multiple
multiple: true