如何在Rails控制器中迭代JSON对象?

时间:2019-03-15 14:02:00

标签: ruby-on-rails json

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

[
    {id: 0, exercises: [15, 18]},
    {id: 1, exercises: [33, 35]} 
]

这是在我的控制器中收到的,我必须按照以下代码临时显示它:

arr = params["_json"]
binding.pry

这在撬控制台中提供了以下输出:

[3] pry(#<ProgramsController>)> arr
=> [<ActionController::Parameters {"id"=>0, "exercises"=>[16, 7, 18]} permitted: false>,
<ActionController::Parameters {"id"=>1, "exercises"=>[14, 15]} permitted: false>]

然后我可以通过arr [0]和arr [1]进行迭代,但是如何获得这些索引中的练习呢?

所以我可以做这样的事情。

arr.each do |x|
  prog = Program.create(x ...)
  x.each do |exercise|
    prog.exercises.create(exercise_id: exercise.id)
  end
end

希望有人可以帮助我处理这些数据。谢谢!

2 个答案:

答案 0 :(得分:0)

尝试使用JSON.parse:)

arr = JSON.parse params["_json"]

答案 1 :(得分:0)

解决方案非常简单:arr [0] [“运动”]

无需解析,谢谢:)