循环索引中有多个关联

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

我的索引中有一个循环,它引用了我想要在表中显示的多个关联。目前我有以下几点,但是想知道是否有更好/更清洁的方法呢?

指数

<table>
<% @sales.each do |data| %>
 <% data.selections.each do |selections| %>
 <% data.operations.each do |operations| %>
 <% data.indices.each do |indices| %>
 <% data.snapshots.each do |snapshots| %>
 <tr>
  <td><%= data.id %></td>
  <td><%= selections.type %></td>
  <td><%= selections.name %></td>
  <td><%= operations.title %></td>
  <td><%= indices.item_id %></td>
  <td><%= indices.item_name %></td>
  <td><%= snapshots.location %></td>
  <td><%= snapshots.name %></td>
 </tr>
 <% end %>
 <% end %>
 <% end %>
 <% end %>
<% end %>
</table>

正如你所看到的,它非常混乱,但工作正常。我希望有一种更好的方法来解决这种疯狂问题。

ruby-on-rails ruby-on-rails-5
1个回答
1
投票

我想那是data.selections.size == data.operations.size == data.indices.size == data.snapshots.size。在这种情况下,您可以在一个循环中执行所有操作

<table>
  <% @sales.each do |data| %>
    <% data.selections.size.times do |i| 
      <tr>
        <td><%= data.id %></td>
        <td><%= data.selections[i].type %></td>
        <td><%= data.selections[i].name %></td>
        <td><%= data.operations[i].title %></td>
        <td><%= data.indices[i].item_id %></td>
        <td><%= data.indices[i].item_name %></td>
        <td><%= data.snapshots[i].location %></td>
        <td><%= data.snapshots[i].name %></td>
      </tr>
    <% end %>
  <% end %>
</table>
© www.soinside.com 2019 - 2024. All rights reserved.