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

Ruby on rails 在ERB中同时循环通过2个阵列,ruby-on-rails,erb,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 @a

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

@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 %>


但这是不对的。任何帮助都将不胜感激。

更多的方法是使用函数:

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 %>


它们总是相同的大小吗?是的,它们总是相同的大小。在视图层中,这太多逻辑/思想了。将它们压缩到控制器、演示者、装饰者、助手等任何位置。