替换列(<td>)类甚至可能是rails中的列内容?

bou*_*uby 0 css ruby html-table ruby-on-rails cycle

在轨道我知道你可以做

<tr class="<%= cycle("even", "odd") %>">
Run Code Online (Sandbox Code Playgroud)

循环给定行的类.

但在这种情况下

<% @products.each do |p| %>
<tr class="headers">
    <td><%= p.name %></td>
    <td><%= p.idnum %></td>
    ...
</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我怎么能自动替换列类?

有什么方法可以这样吗?(为了便于说明,发明了一些奇特的方法名称('.column_names'))

<% @products.each do |p| %>
    <tr class="headers">
        <% products.column_names.each do |c| %>
            <td class="<%= cycle("even", "odd") %>"><%= c %></td>
        <% end %>
    </tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)

编辑:(例如)

<table>
  <tr class="headers">
    <td class="even">&nbsp;</td>
    <td class="odd">Name</td>
    <td class="even">Followers</td>
    <td class="odd">Date Joined</td>
    <td class="even">Slogan</td>
    <td class="odd">Location(s)</td>
    <td class="even">Segments(s)</td>
    <td class="odd">Website</td>
  </tr>
  <tr class="body">
    <td class="even"><img src="<%= company.thumbnail_logo %>"></td>
    <td class="odd"><%= company.company_name %></td>
    <td class="even"><%= company.followers %></td>
    <td class="odd">...</td>
    ...
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这就是我目前正在编写的内容,你可以看到它相当冗长.我希望减少这一点.

cpu*_*y83 5

这只是为了造型目的吗?您可以使用CSS3执行此操作,而无需分配类.

tr:nth-of-type(even){ your_css_here }
Run Code Online (Sandbox Code Playgroud)

要么

td:nth-of-type(even){ your_css_here }
Run Code Online (Sandbox Code Playgroud)

更换evenodd,如果这就是你想要的

另外,你不会<th>用于标题吗?