You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails中创建大型Bootstrap表格的循环语法错误解决求助

问题原因

  • 直接报语法错误的核心原因是96.times调用时缺少块关键字do,正确的带块写法应为<% 96.times do |i| %>
  • 现有代码的嵌套循环逻辑错误:外层循环96次、内层遍历所有工单数据,最终表格行数会是96 * 工单总条数,不符合你要96行表格的需求

正确实现

场景1:最多展示96条工单数据,不足96条时补空行

<table class="table">
  <thead>
    <tr>
      <th scope="col">I</th>
      <th scope="col">Id</th>
      <th scope="col">Time</th>
      <th scope="col">Duration</th>
      <th scope="col">Price</th>
      <th scope="col">Name</th>
      <th scope="col">Company</th>
      <th scope="col">City</th>
    </tr>
  </thead>
  <tbody> 
    <% 96.times do |i| %>
      <% workorder = @workorders[i] %>
      <tr>
        <td><%= i + 1 %></td>
        <td><%= workorder&.id %></td>
        <td><%= workorder&.time %></td>
        <td><%= workorder&.duration %></td>
        <td><%= workorder&.price %></td>
        <td><%= workorder&.name %></td>
        <td><%= workorder&.company %></td>
        <td><%= workorder&.city %></td>
      </tr>
    <% end %>
  </tbody>
</table>

注:代码里的&.是Ruby的安全导航运算符,工单数据不足96条时,后续空行不会调用空对象的属性报错,Rails 5.2及以上版本都支持该语法

场景2:只遍历工单数据,给每条数据加1~96的序号,超过96条的不展示

<table class="table">
  <thead>
    <tr>
      <th scope="col">I</th>
      <th scope="col">Id</th>
      <th scope="col">Time</th>
      <th scope="col">Duration</th>
      <th scope="col">Price</th>
      <th scope="col">Name</th>
      <th scope="col">Company</th>
      <th scope="col">City</th>
    </tr>
  </thead>
  <tbody> 
    <% @workorders.first(96).each_with_index do |workorder, i| %>
      <tr>
        <td><%= i + 1 %></td>
        <td><%= workorder.id %></td>
        <td><%= workorder.time %></td>
        <td><%= workorder.duration %></td>
        <td><%= workorder.price %></td>
        <td><%= workorder.name %></td>
        <td><%= workorder.company %></td>
        <td><%= workorder.city %></td>
      </tr>
    <% end %>
  </tbody>
</table>

内容的提问来源于stack exchange,提问作者jbeachy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:57:02