Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails将循环划分为两个表。rails视图,新手_Ruby On Rails_Ruby_Loops_View - Fatal编程技术网

Ruby on rails rails将循环划分为两个表。rails视图,新手

Ruby on rails rails将循环划分为两个表。rails视图,新手,ruby-on-rails,ruby,loops,view,Ruby On Rails,Ruby,Loops,View,想知道在视图中将模型上的循环拆分为两个表的最佳方法是什么。看起来很简单 <div> <table> <tr><th>Refreshments and Exhibits</th></tr> <% @exhibitor.each do |exhibitor| %> <tr> <td><

想知道在视图中将模型上的循环拆分为两个表的最佳方法是什么。看起来很简单

   <div>
        <table>
          <tr><th>Refreshments and Exhibits</th></tr>
          <% @exhibitor.each do |exhibitor| %>
          <tr>
            <td><%= exhibitor.name %></td>
          </tr>
        <% end %>
        </table>
    </div>
    <div>
        <table>
          <tr><th>Refreshments and Exhibits</th></tr>
          <% @exhibitor.each do |exhibitor| %>
          <tr>
            <td><%= exhibitor.name %></td>
          </tr>
        <% end %>
        </table>
     </div>

茶点及展品
茶点及展品

这将两次显示同一个表。我想通过@exhibitor循环填写第一个表中的td,限制为15。然后继续循环浏览第二张表的其他参展商名称

如果您想要15张表格,请执行此操作

<% @exhibitors.each_slice(15) do |exhibitors_group| %>
  <div>
    <table>
      <tr><th>Refreshments and Exhibits</th></tr>
      <% exhibitors_group.each do |exhibitor| %>
        <tr>
          <td><%= exhibitor.name %></td>
        </tr>
      <% end %>
    </table>
  </div>
<% end %>

茶点及展品
如果你想要前15个和其他表格中的其余部分,请这样做

  <div>
    <table>
      <tr><th>Refreshments and Exhibits</th></tr>
      <% @exhibitor[0..15].each do |exhibitor| %>
        <tr>
          <td><%= exhibitor.name %></td>
        </tr>
      <% end %>
    </table>
  </div>


  <div>
    <table>
      <tr><th>Refreshments and Exhibits</th></tr>
      <% @exhibitors[16..-1].each do |exhibitor| %>
        <tr>
          <td><%= exhibitor.name %></td>
        </tr>
      <% end %>
    </table>
  </div>

茶点及展品
茶点及展品
你也应该考虑2件事:

  • 为这些表使用辅助对象或布局
  • 不要在视图中切片阵列,而是在控制器中进行切片

每个切片()都不能完全做到这一点。如果有超过30个项目,那么将有第三个表。我认为答案应该是前15个,然后是所有你可以放的@exhibitors.each_切片((@exhibitors.count/2.0.ceil)),你将永远有两张相同长度的桌子。