如何以rails形式动态使用rowspan

时间:2013-12-27 07:36:22

标签: html ruby-on-rails

我必须以表格形式显示车辆的路线,票价和停止详情。

表格结构

 Route       Stops        Fare       Morning Arrival Time       Evening Arrival Time

    A            A1         100            09:00 AM                  04:00 PM
                 A2         200            10:100 AM                 05:00 PM

    B            B1         100            09:30 AM                   04:10 PM
                 B2         200            10:40 AM                   05:10 PM
                 B3         300            11:00 AM                   05:30 PM

我尝试过以下代码,但是,我没有得到上面提到的表格格式。

<table border="1">
  <tr>
    <th>Route Name</th>
    <th>Stop Name</th>
    <th>Fare</th>
    <th>Morning arrival</th>
    <th>Evening arrival</th>
  </tr>
   <% @stops.each do |stop| %>
    <% @no_of_stop = stop.route.no_of_stop %>
  <tr>

    <td rowspan = '<%= @no_of_stop %>' ><%= stop.route.route_name %></td>   
    <td ><%= stop.stop_name %></td>
    <td><%= stop.fare %></td>
    <td><%= stop.morning_arrival %></td>
    <td><%= stop.evening_arrival %></td>

  </tr>
   <% end %>

</table>

我有这张桌子的样子。 enter image description here

请帮助我..

1 个答案:

答案 0 :(得分:0)

根据属性名称判断,有点像你的模型略微向后布局或在此视图中引用。

假设您有多个routes,并且每条路线都引用一系列stops,例如通过has_many关系,渲染路线而不是停止 IMO会更有意义:

<table border="1">
  <tr>
    <th>Route Name</th>
    <th>Stop Name</th>
    <th>Fare</th>
    <th>Morning arrival</th>
    <th>Evening arrival</th>
  </tr>

  <% @routes.each do |route| %>
    <tr>
      <td rowspan="<% route.stops.count %>"><%= route.route_name %></td>
      <% route.stops.each do |stop| %>
        <td ><%= stop.stop_name %></td>
        <td><%= stop.fare %></td>
        <td><%= stop.morning_arrival %></td>
        <td><%= stop.evening_arrival %></td>
      <% end %>
    </tr>
  <% end %>

</table>

当然,这仅适用于a route has many stops

哦,如果是route.no_of_stop,例如在计数器缓存列中,您当然可以再次使用它来替换{​​{1}}。