如何使用key = id
从数据库中获取记录items = Item.all
而不是:
items = {{"id"=>1, "title"=>"A"},
{"id"=>5, "title"=>"B"}}
如何获得?
items = {"1"=>{"id"=>1, "title"=>"A"},
"5"=>{"id"=>5, "title"=>"B"}}
答案 0 :(得分:2)
对于Ruby> = 2.0或Ruby< 2.0与backports:
Item.all.map { |r| [r.id, r.attributes] }.to_h
对于Ruby< 2.0没有backports:
Hash[Item.all.map { |r| [r.id, r.attributes] }]
答案 1 :(得分:1)
您可以尝试以下操作:
result = {}
Item.all.collect{|item| result[item.id] = item.as_json}