将数据映射到正确的格式Ruby on rails

时间:2015-01-25 21:47:44

标签: ruby-on-rails ruby

这应该是一个简单的,但我没有做对。环顾谷歌和搜索引擎优化并找到了一些建议,但无法让他们为我工作。

我需要输出一个特定的数据结构,这是一个包含每个哈希索引的哈希数组:

[ 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}}

1 个答案:

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