迭代创建哈希哈希

时间:2013-08-09 18:24:41

标签: ruby-on-rails ruby ruby-on-rails-3 hash

作为最终结果,我需要一个哈希:

{items: {lorem: val1, dolor: val2}, {lorem: val1, dolor: val2}...}

e.g。哈希哈希。

问题是它应该从迭代中创建:

@result = []

@goods = {lorem: "ipsum", dolor: "sit"}

@items.each do |item|
  @goods.map do |k, v|
    if item.title == "ipsum"
      @result << [k, v]
    else
      @result << [k, item.title]
    end
  end
end

但这不是我要搜索的内容,因为@result是数组,并且它不是二维的(因此我有[[foo,bar] [foo1,bar1] ...])

我看到如何将k转换为Hash键(k.to_sym),但我的问题是将散列哈希作为最终输出。

Ruby 1.9.3(和Rails,但我相信这可以在没有任何Rails添加的情况下完成)

非常感谢。

1 个答案:

答案 0 :(得分:3)

预期结果的格式不是有效的哈希。

而不是

{items: {lorem: val1, dolor: val2}, {lorem: val1, dolor: val2}...}

应该是这样的

{items: [{lorem: val1, dolor: val2}, {lorem: val1, dolor: val2}]}

获得想要的结果也不难

@items = []
@goods = {lorem: "ipsum", dolor: "sit"}
@items << @goods
@result = {items: @items}