我如何在视图中使用each_with_index作为二维数组

时间:2018-02-04 08:22:35

标签: ruby-on-rails

我有一个2d的对象数组和整数@user_double_array。它看起来像这样。

[[#<User object>, integer], [#<User object>, integer]]

我在我的观点中称呼这个

<% @user_double_array.each do |user, percentage| %>
<% end %>

我想拥有每次迭代的次数,所以我尝试了这个

<% @user_double_array.each_with_index do |user, percentage, index| %>
<% end %>

但是我在使用

等用户时收到错误
 "undefined method "email" for #<Array:0x007ff793c42240>"

如何跟踪每次迭代?

1 个答案:

答案 0 :(得分:2)

由于你有一个数组数组,当你迭代时,每次block变量给出一个数组时,你可以再次调用.first.last来使事情有效。所以,

@user_double_array = [[#<User object>, integer], [#<User object>, integer]]

您可以像这样迭代

<% @user_double_array.each_with_index do |user_array, index| %>
  <%= index %>
  <%= user_array.first.email %> // user_array.first holds #<User object>
  <%= user_array.last %> //gives integer
<% end %>

希望这有帮助。