rails 在两个表中划分循环。导轨视图,新手

Posted

技术标签:

【中文标题】rails 在两个表中划分循环。导轨视图,新手【英文标题】:rails divide loop in two tables. rails view, newbie 【发布时间】:2012-12-28 01:11:14 【问题描述】:

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

   <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。然后继续循环遍历第二个表的 exhibitor.name 的其余部分。

【问题讨论】:

【参考方案1】:

如果您想要 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>

你还应该考虑两件事:

为这些表格使用助手或布局 不要在视图中对数组进行切片,而是在控制器中进行

【讨论】:

each_slice() 并没有完全做到这一点。如果超过 30 个项目,则将有第三个表。我认为答案必须是前 15 个,然后是其余的 其实你可以把@exhibitors.each_slice((@exhibitors.count/2.0).ceil)) 和你总是有两个相同长度的表。

以上是关于rails 在两个表中划分循环。导轨视图,新手的主要内容,如果未能解决你的问题,请参考以下文章

你可以在视图中使用逻辑吗?导轨

从视图中删除方括号和引号,导轨 3

带导轨的图像/照片库(网格视图)?

Rails:为循环的每次迭代从表中获取数据

从表行链接到新视图生成:格式=>单击行的ID 为啥?导轨

如何使用rails cucumber,rspec,capybara在视图(dhtml)中测试动态部分?