我在从父子关系构建 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 question有很大帮助,但我无法完全弄清楚。
我试过这个:
Parent.all.inject({}) { |hsh, p| hsh[p.name] = { p.name => p.children.inject({}) { |h,v| h[v] = {age: v.age, height: v.height}} }}
这真的很接近(但看起来很可怕)。但是我只得到一个父母的孩子——我需要所有的父母和孩子。我只需要孩子的身高和年龄。输出是这样的(我已经排除了到 json 的转换):
{"BarryWhite"=>{:age=>"12", :height=>"45cm"}}
它应该看起来像这样:
{"BarryWhite"=>{:age=>"12", :height=>"45cm"}, {:age => "34", :height => "108cm"}, "AndyMurray"=>{:age=>"14", :height=>"125cm"}}
我怎样才能让它输出正确格式的 json。