【问题标题】:How to place two elements in a row while using .each loop in rails在rails中使用.each循环时如何将两个元素连续放置
【发布时间】:2022-09-17 22:22:10
【问题描述】:

我想在使用 '.each' 方法时每行显示两列代码在表数据标记“”中。但问题是以下代码连续显示一列。

<table>
  <% @lease.apartment.roommates.each do |roommate| %>
    <tr>
      <td colspan="5">
        <% unless roommate == @lease.second_occupant || roommate == @lease.user %>        
          <% if roommate.current_room.present? %>
            <p>
              <%= roommate.full_name %> - 
              <% if roommate.current_room.apartment == @lease.apartment%>
                <%= roommate.current_room&.label %> 
              <% end %>
              <br>Email:<%= roommate.email %><br>Phone:<%= roommate.phone %><br>
              <% if @lease.end_at.present? %>
                Lease End date (if applicable):<%= @lease.end_at %>
              <% end %>
            </p>
          <% end %>
        <% end %>
      </td>
    </tr>
  <% end %>
</table>

【问题讨论】:

  • 目前尚不清楚您是要连续显示两次相同的名称,还是连续显示两个不同的名称。你能澄清一下吗?
  • @本芬纳!连续两个不同的名字...

标签: ruby-on-rails loops ruby-on-rails-3 each


【解决方案1】:

您可以使用 each_slice 方法将数组划分为每个包含 2 个元素的切片:

<table>
  <% @roommates.each_slice(2) do |roommate_slice| %>
    <tr>
      <td colspan="5">            
        <%= roommate_slice[0].full_name %>
        <%= roommate_slice[1].full_name %>
      </td>      
    </tr>
  <% end %>
</table>

【讨论】:

  • 你能再看看编辑过的问题吗?我想连续显示两列...
猜你喜欢
  • 2018-11-05
  • 1970-01-01
  • 2016-07-10
  • 2013-06-14
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
相关资源
最近更新 更多