Rails嵌套参数解析

问题描述 投票:0回答:1

我有一个模型Klass,可以有几个Note对象。在我的表格中,我的字段名称为klass[notes][][note_ids][]

现在,如果我将以下参数传递给请求:

klass[notes][][note_ids][]=5cb95789-6c35-4d39-aa17-c3ddbbbcf540&klass[notes][][note_ids][]=2cfb26df-21b4-43d7-aa65-735569d42ad9

它们按如下方式解析(使用Rack :: Utils.parse_nested_query):

{"klass"=>{"notes"=>[{"note_ids"=>["5cb95789-6c35-4d39-aa17-c3ddbbbcf540", "2cfb26df-21b4-43d7-aa65-735569d42ad9"]}]}}

如何制作它以便将它们解析为以下内容:

{"klass"=>{"notes"=>[{"note_ids"=>["5cb95789-6c35-4d39-aa17-c3ddbbbcf540"]}, {"note_ids"=>["2cfb26df-21b4-43d7-aa65-735569d42ad9"]}]}}
ruby-on-rails query-parameters
1个回答
1
投票

使用当前的方案,解析器将无法判断两个ID是在note_ids级别还是在notes级别进行分组。它将它们分组到它找到的第一个有效级别。

您可以通过手动分组外层来帮助解析器。例如,

klass[notes][0][note_ids][]=1&klass[notes][1][note_ids][]=2

被解析为

 {"klass"=>{"notes"=>{"0"=>{"note_ids"=>["1"]}, "1"=>{"note_ids"=>["2"]}}}}
© www.soinside.com 2019 - 2024. All rights reserved.