在Ruby on Rails中对视图的结果进行编号

时间:2014-02-16 13:11:51

标签: ruby-on-rails ruby ruby-on-rails-4

我从控制器获取数据并通过循环打印。这是入门指南中的示例。我希望每一行都有编号的类,如class-1 class-2等。 下面是我在视图文件中的代码。

<% @posts.each do |post| %>
  <tr>
    <td><%= post.title %></td>
    <td><%= post.text %></td>
    <td><%= link_to 'Show', post_path(post) %> | </td>
    <td><%= link_to 'Edit', edit_post_path(post) %> | </td>
    <td><%= link_to 'Delete', post_path(post),
                    method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>

例如,每个行应该在呈现时按顺序排列类:

  <tr class="class-1">
    <td>title</td>
  </tr>
  <tr class="class-2">
    <td>title</td>
  </tr>
  <tr class="class-3">
    <td>title</td>
  </tr>

1 个答案:

答案 0 :(得分:1)

这样的东西
<% classid = 0 %>
<% @posts.each do |post| %>
  <%= "<tr class=\"class-#{classid}\">" %>  
    <td><%= post.title %></td>
    <td><%= post.text %></td>
    <td><%= link_to 'Show', post_path(post) %> | </td>
    <td><%= link_to 'Edit', edit_post_path(post) %> | </td>
    <td><%= link_to 'Delete', post_path(post),
                    method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
  <% classid +=1 %>
<% end %>

那就是说我会查看presenter模式,或者对于任何类帖子的方法,或者如果post在db中,使用它的id而不是序列号,那么它仍然更好。