Rails嵌套参数解析
Rails nested parameter parsing
我有一个模型 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"]}]}}
根据目前的方案,解析器将无法判断这两个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"]}}}}
我有一个模型 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"]}]}}
根据目前的方案,解析器将无法判断这两个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"]}}}}