这应该是一个简单的,但我没有做对。环顾谷歌和搜索引擎优化并找到了一些建议,但无法让他们为我工作。
我需要输出一个特定的数据结构,这是一个包含每个哈希索引的哈希数组:
[ id => {:key=>"foo", :value=>"bar"}]
我有一个Class对象(" Foo"),我需要将其映射到上面的结构中。我走到这一步:
[{:key=>"personal", :value=>"age"}]
...使用此代码:
check = Foo.find(1)
check.collect{|r| {:key => r.name, :value => r.type}}
我想要实现的是在上面的哈希中添加索引。索引的值应为" check.id"。
我认为这可能正朝着正确的方向前进但不确定(结果出错):
check.group_by {|r| r.id }.collect{ |r| {:key => r.name, :value => r.type}}
答案 0 :(得分:1)
这应该有效
check.collect{|r| {r.id.to_s => {:key => r.name, :value => r.type}}}
实际上我假设你想获得哈希哈希:
Hash[ *check.collect { |r| [r.id.to_s, {:key => r.name, :value => r.type}] }.flatten ]