親と子の関係からjsonオブジェクトを構築するのに少し行き詰まっています。多くの子を持つ親モデルがあります。
私はJSONオブジェクトを次のように作成しようとしています:
{ parent_1.name: { parent_1.child.age, parent_1.child.height}, parent_1.name: { child_2.age, child_2.height}, parent_2.name: ...... }
この SO の質問は大いに役立ちましたが、完全には理解できません。
私はこれを試しました:
Parent.all.inject({}) { |hsh, p| hsh[p.name] = { p.name => p.children.inject({}) { |h,v| h[v] = {age: v.age, height: v.height}} }}
これは本当に近いです(しかし恐ろしい見た目です)。ただし、私は 1 つの親の子供しか取得しません。子供を持つすべての親が必要です。子供たちの身長と年齢だけが必要です。出力は次のようになりました (json への変換は除外しました)。
{"BarryWhite"=>{:age=>"12", :height=>"45cm"}}
次のようになります。
{"BarryWhite"=>{:age=>"12", :height=>"45cm"}, {:age => "34", :height => "108cm"}, "AndyMurray"=>{:age=>"14", :height=>"125cm"}}
これを正しくフォーマットされたjsonを出力するにはどうすればよいですか。