好吧,我现在已经挣扎了一段时间,我不知道自己做错了什么。我知道这已被问过几次,但其他问题的答案对我的情况并不是很有效。我试图将特定字段作为数组发送到rails无济于事。
生成的html看起来像这样
<input class="form-control" id="groups_header_0_version_number_value" name="groups[header][0][version][number][value]" placeholder="value" type="text">
<input class="form-control" id="groups_header_0_version_creator_value" name="groups[header][0][version][creator][value]" placeholder="value" type="text">
<input class="form-control" id="groups_header_1_version_number_value" name="groups[header][1][version][number][value]" placeholder="value" type="text">
<input class="form-control" id="groups_header_1_version_creator_value" name="groups[header][1][version][creator][value]" placeholder="value" type="text">
我想将header
作为数组发送到rails服务器。当我在控制器中将params[:group]
渲染为json
时,我得到了
{
"header":{
"0":{
"version":{
"number":{
"operator":"\u003c=",
"value":"34"
},
"creator":{
"operator":"=",
"value":"joseph"
}
}
},
"1":{
"version":{
"number":{
"operator":"\u003c",
"value":"87"
},
"creator":{
"operator":"=",
"value":"john"
}
}
}
}
}
我真正想要的是一个json结构header
作为数组,如
{
"header":[
{
"0":{
"version":{
"number":{
"operator":"\u003c=",
"value":"34"
},
"creator":{
"operator":"=",
"value":"joseph"
}
}
},
"1":{
"version":{
"number":{
"operator":"\u003c",
"value":"87"
},
"creator":{
"operator":"=",
"value":"john"
}
}
}
}
]
}
如何正确命名输入框以获取上述发送的参数?感谢
答案 0 :(得分:1)
您将要将您的名称属性更改为:
<input ... name="groups[header][][0][version][number][value]" ... >
<input ... name="groups[header][][0][version][creator][value]" ... >
<input ... name="groups[header][][1][version][number][value]" ... >
<input ... name="groups[header][][1][version][creator][value]" ... >
请注意[]
[header]
这会产生参数
"groups"=>{"header"=>
[
{
"0"=>{"version"=>{"number"=>{"value"=>""}, "creator"=>{"value"=>""}}},
"1"=>{"version"=>{"number"=>{"value"=>""}, "creator"=>{"value"=>""}}}
}
]
}
似乎是你想要的。