gpt4 book ai didi

ruby-on-rails - 以数组为根对象的 rails 中的强参数

转载 作者:行者123 更新时间:2023-12-04 16:04:54 25 4
gpt4 key购买 nike

我有一个对象数组通过以下结构传递给我的 Controller :

[
{
"id": 1,
"fruit_ids": [1, 2, 3]
},
{
"id": 2,
"fruit_ids": [4, 5, 6]
},
]

根对象不是 {} ,而是一个数组。我不确定如何为这种情况编写强大的参数状态。我试过了
params.permit [:id, fruit_ids: []]

和其他类似的选择,但它不允许。

编辑:

我没有在请求正文中发送 JSON 对象。我正在发送一个 JSON 数组。当我检查 params 的值时在我的 Controller 中,结果如下:
{
"_json" => [
{"id"=>1, "fruit_ids"=>[1, 2, 3]},
{"id"=>2, "fruit_ids"=>[4, 5, 6]}
],
"format"=>"json",
"controller"=>"...",
"action"=>"..."
}

最佳答案

理想情况下,您应该始终将 JSON 对象作为参数发送,当您没有明确给出对象的键时,它需要 _json就像你的参数一样。

无论如何要在您的情况下编写一个强大的参数,您可以执行以下操作,

params = ActionController::Parameters.new({
"_json" => [
{"id"=>1, "fruit_ids"=>[1, 2, 3]},
{"id"=>2, "fruit_ids"=>[4, 5, 6]}
],
"format"=>"json",
"controller"=>"...",
"action"=>"..."
}

params.permit('_json': [:id, fruit_ids: []]) # You need this line.

# => {"_json"=>[{"id"=>1, "fruit_ids"=>[1, 2, 3]}, {"id"=>2, "fruit_ids"=>[4, 5, 6]}]}

关于ruby-on-rails - 以数组为根对象的 rails 中的强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com