2016-04-03 66 views
1

我想在HAML中创建一个可能使用多个数组的循环。让我解释我的意思。在HAML中循环多个阵列

我HAML代码看起来像这样:

- ['thumb1', 'thumb2', 'thumb3', 'thumb4'].each_with_index do |value, index| 
    - ['head1', 'head2', 'head3', 'head4'].each do |i| 
    %span.span{:class => "photo-#{value}"} #{value} 
    %a #{i}ere 

,并输出到这一点:

<span class='photo-thumb1 span'>thumb1</span> 
<a>head1</a> 
<span class='photo-thumb1 span'>thumb1</span> 
<a>head2</a> 
<span class='photo-thumb1 span'>thumb1</span> 
<a>head3</a> 
<span class='photo-thumb1 span'>thumb1</span> 
<a>head4</a> 
<span class='photo-thumb2 span'>thumb2</span> 
<a>head1</a> 
<span class='photo-thumb2 span'>thumb2</span> 
<a>head2</a> 
<span class='photo-thumb2 span'>thumb2</span> 
<a>head3</a> 
<span class='photo-thumb2 span'>thumb2</span> 
<a>head4</a> 
<span class='photo-thumb3 span'>thumb3</span> 
<a>head1</a> 
<span class='photo-thumb3 span'>thumb3</span> 
<a>head2</a> 
<span class='photo-thumb3 span'>thumb3</span> 
<a>head3</a> 
<span class='photo-thumb3 span'>thumb3</span> 
<a>head4</a> 
<span class='photo-thumb4 span'>thumb4</span> 
<a>head1</a> 
<span class='photo-thumb4 span'>thumb4</span> 
<a>head2</a> 
<span class='photo-thumb4 span'>thumb4</span> 
<a>head3</a> 
<span class='photo-thumb4 span'>thumb4</span> 

但输出我真正想要的是:

<span class='photo-thumb1 span'>thumb1</span> 
<a>head1</a> 
<span class='photo-thumb2 span'>thumb1</span> 
<a>head2</a> 
<span class='photo-thumb3 span'>thumb1</span> 
<a>head3</a> 
<span class='photo-thumb4 span'>thumb1</span> 
<a>head4</a> 

什么时我错过了吗?如果我试图擦除空白,它会抛出一个错误。

+0

对不起@Alex,但目前尚不清楚你想要什么。 –

+0

你是否真的希望文本在你的输出中的每个跨度或者thumb1,thumb2等都是'thumb1'? – matt

回答

1

对不起,但你的问题是如此混乱。它会是你需要的东西?

- [['tb1', 'hd1'], ['tb2', 'hd2'], ['tb3', 'hd4']].each do |thumb, head| 
    %span{class: "photo-#{thumb} span"}= thumb 
    %a= head 
+0

非常感谢您的回答。但是因为我想了解这个过程,我想问你:.zip()方法和你给我的方法有什么区别。谢谢! – Alex

+0

没有区别,@Alex。这种方式更具教学性,'.zip()'将转换成此结构。 –

1

我想你要找的是什么zip

- ['thumb1', 'thumb2', 'thumb3', 'thumb4'].zip(['head1', 'head2', 'head3', 'head4']) do |thumb, head| 
    %span.span{:class => "photo-#{thumb}"}= thumb 
    %a= head 
+0

非常感谢你,马特!对不起,我把它放在一个非常混乱的方式。由于我是新手,很难为我解释。你给我的答案正是我一直在寻找的。 – Alex