我正在尝试编写更紧凑的代码。我有三个哈希。第一个哈希(@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的东西。我希望,有人可以关注并帮助我。
答案 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]