我有一个Active Record对象数组。我想创建一个用作索引的哈希。我的Active Record对象具有属性name
和value
。
理想情况下,我想迭代数组并创建一个哈希,它将创建类似于:
hash[name] = value
创建数组foo
以创建类似于上面的哈希的最佳方法是什么?
答案 0 :(得分:2)
这样的事情会起作用:
hash = {}
Model.all.map { |i| hash[i.id] = i }
hash
应评估为:
{
:1 => #<ActiveRecord:1>,
:2 => #<ActiveRecord:2>,
...
}
答案 1 :(得分:0)
您可以使用方法Hash::[]
。
relation = Record.where("query")
Hash[
relation.to_a.map do |obj|
[obj.name, obj.value]
end
]