Ruby 从散列中构建散列

Ruby 从散列中构建散列,ruby,hash,Ruby,Hash,我正在努力把代码写得更紧凑。我有三个散列。第一个散列(@hash)是子散列(值_1,值_2)的集合 现在,在我的haml观点中,我正在尝试做这样的事情: - i = 0 - @hash.each_value do |value| - @value_[i].each_pair do |k, v| = k = v[0] - i = i +1 我不想一个接一个地写散列。这有点类似于从字符串中生成一个符号,您可以将类似“value#{i}”的东西写入到。我希望有人能跟着我,帮助

我正在努力把代码写得更紧凑。我有三个散列。第一个散列(@hash)是子散列(值_1,值_2)的集合

现在,在我的haml观点中,我正在尝试做这样的事情:

- i = 0

- @hash.each_value do |value|
  - @value_[i].each_pair do |k, v|
    = k
    = v[0]

- i = i +1
我不想一个接一个地写散列。这有点类似于从字符串中生成一个符号,您可以将类似“value#{i}”的东西写入到。我希望有人能跟着我,帮助我

@hashes = [
           {
             "Foo" => ["bar_1", "bar_2"]
           }, 
           {
             "Foo2" => ["bar2_1", "bar2_2"]
           }
   ]
然后

如果需要索引,请使用
每个带有索引的\u

编辑

试试这个:

 - @hash.each_value do |value|
  - value.each do |v|
    - instance_variable_get(:"@#{v}").each_pair do |k, val|
      = k
      = val[0]

我的散列已经满了。我尽量避免碰那里的任何东西。我想这只是一个简单的把戏。一点功夫风格:-)试试这个:-@hash.each|value do|value|value.each do|v|send(:“@#{v}”)。每对do|k,val|k=val[0]是的,就是这样。我不知道第三行发生了什么,但这似乎是我想要的功夫。非常感谢你。
@hashes.each do |v|
  v.each_pair do |k,v|
    = k
    = v[0]
 - @hash.each_value do |value|
  - value.each do |v|
    - instance_variable_get(:"@#{v}").each_pair do |k, val|
      = k
      = val[0]