用哈希构建哈希

时间:2011-11-19 15:06:29

标签: ruby hash

我正在尝试编写更紧凑的代码。我有三个哈希。第一个哈希(@hash)是子哈希的集合(value_1,value_2)

@hash = {
  "Key" => ["value_1", "value_2"]
}

@value_1 = {
  "Foo" => ["bar_1", "bar_2"]
}

@value_2 = {
  "Foo2" => ["bar2_1", "bar2_2"]
}

现在,在我的haml-view中,我试图做出类似这样的事情:

- i = 0

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

- i = i +1

我不想在另一个之后写一个哈希。它有点类似于用字符串制作符号,你可以在其中编写类似“value _#{i}”。to_sym的东西。我希望,有人可以关注并帮助我。

1 个答案:

答案 0 :(得分:1)

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

然后

@hashes.each do |v|
  v.each_pair do |k,v|
    = k
    = v[0]

如果您需要索引,请使用each_with_index

修改

试试这个:

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

API