我很好奇是否有本地方法可以返回一个查询,并将 id 值作为返回的哈希键。比如:
Location.find([2,4,7]).as_hash
回来
{
2:{name:"name 1", id: 2},
4:{name:"name 4", id: 4},
7:{name:"name 7", id: 7},
}
我只想做一个 to_json ,这样会很方便。
谢谢
I'd like to just do a to_json and this would be convenient.
原生,有一个
to_json
方法可以直接以 json 格式提供查询的输出。
Location.find([2,4,7]).to_json
但是,格式与您指定的格式不同。检查它是否适合您。
to_xml, to_yaml
方法是可以类似地分别从 activerecord 查询中输出 xml 和 yaml 数据的其他方法。
或者,你可以这样做
locations = Location.find([2,4,7])
locations_hash = {}
locations.each do |location|
locations_hash[location.id] = location
end
locations_hash.to_json
我意识到这已经很旧了,但现在你可以在数组上调用
to_h
并传递一个块来定义键/值对。
因此,在我们的例子中,我们可以运行
Location.find([2,4,7]).to_h { [_1.id, _1 ] }
,它将返回 3 个位置的哈希值,其中键是 id,值是记录对象。
{
2 => Location(..),
4 => Location(..),
7 => Location(..)
}