2012-07-21 205 views
0

在铁轨我知道你可以为一个给定的行做备用列(​​)类,甚至可能列中的列内容?

<tr class="<%= cycle("even", "odd") %>"> 

循环类。

但在这样的

<% @products.each do |p| %> 
<tr class="headers"> 
    <td><%= p.name %></td> 
    <td><%= p.idnum %></td> 
    ... 
</tr> 
<% end %> 

怎么可能我自动交替列类的情况?

有没有什么办法可以像这样? (发明了一些奇特的方法名称(” .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 %> 

编辑:(在点的情况下)

<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> 

这是我在写作中目前,你可以看到它相当详细。我期待减少这一点。

+0

如果这是不可能的,也许我(或更好,你们中的一个)应该试图推动一些改变轨道! – 2012-07-21 19:10:33

+0

即使对于布局来说,奇数也可以更好,更容易用CSS实现。喜欢:nth-​​child(偶数) – Matsemann 2012-07-21 19:29:40

+0

您能否详细说明答案,请先生? – 2012-07-21 19:31:25

回答

5

这只是为了造型的目的呢? 你可以使用CSS3来做到这一点,而不必分配类。

tr:nth-of-type(even){ your_css_here } 

td:nth-of-type(even){ your_css_here } 

更换evenodd如果这就是你想要

什么此外,你会不会使用<th>的头?

+0

并且是的,这是一种减少冗长的好方法,使用。我会从现在开始做到这一点,谢谢 – 2012-07-21 19:35:00

+0

我怎么会得到偶数和奇数循环?我不确定你是否回答了这个问题。你有回答吗? – 2012-07-21 19:38:33

+0

CSS循环它,你不必。 你把它放在你的CSS中: 'tr:nth-​​type-type(even){background-color:#myhexcolor; }' 它会把这个十六进制背景颜色放在每一个偶数行上......对于列是一样的......当然你可以应用任何你想要的样式。 – cpuguy83 2012-07-21 19:40:52

2

您可以在同一个循环内使用多个命名循环来达到此效果。下面是使用一个名为Example,并与对应的属性名称的类印刷的各个属性在自己的<td>型号的例子:

<% @examples.each do |example| %> 
    <tr class="<%= cycle('odd', 'even', :name => 'row-cycle') %>"> 
    <% example.attributes.each_pair do |attribute, value| %> 
     <td class="<%= cycle(*example.attribute_names, :name => 'column-cycle') %>"><%= value %></td> 
    <% end %> 
    </tr> 
<% end %> 

而从这个代码的一些示例输出:

<tr class="odd"> 
    <td class="id">1</td> 
    <td class="name">Brandan</td> 
    <td class="location">Raleigh</td> 
    <td class="created_at">2012-07-21 21:14:45 UTC</td> 
    <td class="updated_at">2012-07-21 21:14:45 UTC</td> 
</tr> 

你如果您不想打印每条记录上的所有属性,可以调整此设置以满足您的需要。

相关问题