1

最終結果として、次のようなハッシュが必要です。

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

たとえば、ハッシュのハッシュ。

問題を置くと、次のような反復から作成する必要があります。

@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 は配列であり、2 次元ではないためです (結果として [[foo, bar] [foo1,bar1]...] があるため)。

kハッシュ キー (k.to_sym) に変換する方法はわかりましたが、問題は最終出力としてハッシュのハッシュを使用することです。

Ruby 1.9.3 (および Rails ですが、これは Rails を追加しなくても実行できると思います)

どうもありがとう。

4

1 に答える 1

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}
于 2013-08-09T18:39:22.030 に答える