获取key = id的记录

时间:2014-05-15 12:28:02

标签: ruby-on-rails ruby ruby-1.9.3

如何使用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"}}

2 个答案:

答案 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}