如何在数组上的组上显示正确的索引值?

问题描述 投票:0回答:1

我有下表称为产品:

|id| |name|
 81   monitor
 82   keyboard
 83   mouse
 84   headphone

控制器是 products_controller.rb,代码如下:

 def index
   @products = Product.all
 end

应该显示以下结果

|Nº|  |name|         |Nº|   |name|
 1     monitor        3      mouse 
 2     keyboard       4      headphone

我使用 SLICE 尝试了以下代码:

<table>
  <tr>
    <td>Nº</td>
    <td>Product</td>
  </tr>
  
  <% @products.each_slice(2).each_with_index do |grouped_array,row_index| %> 
  <tr>
     <% grouped_array.each_with_index do |array, column_index| %>
     <td><%= column_index + 1 %></td>
     <td><%= array.name %></td>
     <% end %>
  </tr>
  <% end %>
</table>

使用SLICE的结果是:

|Nº|  |name|         |Nº|   |name|
 1     monitor        1      mouse 
 2     keyboard       1      headphone

我尝试使用in_groups_of

  <% @products.in_groups_of(2).each_with_index do |grouped_array,row_index| %> 
  <tr>
     <% grouped_array.each_with_index do |array, column_index| %>
     <td><%= column_index + 1 %></td>
     <td><%= array.name %></td>
     <% end %>
  </tr>
  <% end %>

使用in_groups_of的结果是:

|Nº|  |name|         |Nº|   |name|
 1     monitor        1      mouse 
 2     keyboard       1      headphone
ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4
1个回答
0
投票

对于 SLICE 元素的代码索引可以这样计算

<%= row_index * 2 + column_index + 1 %>
© www.soinside.com 2019 - 2024. All rights reserved.