在ERB中同时循环通过2个阵列

时间:2014-06-06 21:14:48

标签: ruby-on-rails erb

我有两个数组,我正从控制器返回,如下所示:

@array1 = []
@array2 = []

@person_stat = PersonStats.select("id").map(&:id)

for idx in 0 ... @person_stat.size
  @array1[idx] = Person.find(@person_stat[idx])
  @array2[idx] = Array2.id_to_array2(@array[idx].id)
end

return @array1, @array2

但是现在我需要在我的.html.erb文件中打印一个表格。我的猜测是:

<%= @array1.each, @array2.each do |a1, a2| %>
<tr><td><%= a1.name %></td><td><%= a2.type %></td></tr>
<% end %>

但这不正确。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:7)

更重要的方法是使用zip函数:

a = (1..10).to_a
b = (10..20).to_a

a.zip(b).each do |c, d|
  puts "#{c}, #{d}"
end

在你的情况下:

<%= @array1.zip(@array2) do |a1, a2| %>
<tr><td><%= a1.name %></td><td><%= a2.type %></td></tr>
<% end %>