Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails控制器中迭代JSON对象?_Ruby On Rails_Json - Fatal编程技术网

Ruby on rails 如何在rails控制器中迭代JSON对象?

Ruby on rails 如何在rails控制器中迭代JSON对象?,ruby-on-rails,json,Ruby On Rails,Json,我正在以JSON格式将以下数据集传递给我的控制器: [ {id: 0, exercises: [15, 18]}, {id: 1, exercises: [33, 35]} ] 这是在我的控制器中接收到的,我必须使用以下代码来临时显示它: arr = params["_json"] binding.pry 这在pry控制台中为我提供了以下输出: [3] pry(#<ProgramsController>)> arr => [<ActionCon

我正在以JSON格式将以下数据集传递给我的控制器:

[
    {id: 0, exercises: [15, 18]},
    {id: 1, exercises: [33, 35]} 
]
这是在我的控制器中接收到的,我必须使用以下代码来临时显示它:

arr = params["_json"]
binding.pry
这在pry控制台中为我提供了以下输出:

[3] pry(#<ProgramsController>)> arr
=> [<ActionController::Parameters {"id"=>0, "exercises"=>[16, 7, 18]} permitted: false>,
<ActionController::Parameters {"id"=>1, "exercises"=>[14, 15]} permitted: false>]
希望有人能帮我处理这些数据。谢谢

尝试使用JSON.parse:)


解决方案非常简单:arr[0][“练习”]


无需解析,谢谢tho:)

您需要将其解析为哈希,然后修改哈希。请注意:您的初始代码示例不是JSON,而是Ruby哈希。JSON具有字符串键,而不是示例中的符号。一个细节,但它可能有助于解释为什么您可以直接引用它。
arr.each do |x|
  prog = Program.create(x ...)
  x.each do |exercise|
    prog.exercises.create(exercise_id: exercise.id)
  end
end
arr = JSON.parse params["_json"]