我正在尝试从我的参数中获取对象数组,寻找如下所示的内容:
"invoice"=>{"items"=>[{"description"=>"[no description]", "units"=>"0", "rate"=>"0"}, {"description"=>"[no description]", "units"=>"0", "rate"=>"0"}]}
我正在这样设置我的表单:
<input type="hidden" name="invoice[invoice_items][description]" />
<input type="hidden" name="invoice[invoice_items][units]"/>
<input type="hidden" name="invoice[invoice_items][rate]" />
输入是动态添加的,因此每个对象有 3 个组;在 Rails 中从表单发送对象数组的正确方法是什么?
该表单请求的结果如下所示:
"invoice"=>{"items"=>{"description"=>"[no description]", "units"=>"0", "rate"=>"0"}}
即使我添加更多项目,第一个项目总是有一个哈希
最佳答案
尝试添加方括号:
<input type="hidden" name="invoice[items][][description]">
<input type="hidden" name="invoice[items][][units]">
<input type="hidden" name="invoice[items][][rate]">
Rails 会将这些参数解析为:
"invoice" => {
"items"=> [
{ "description" => "", "units" => "", "rate" => "" },
{ "description" => "", "units" => "", "rate" => "" }
]
}
关于ruby-on-rails - 如何从 Rails 4 中的表单发送哈希数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431863/