2012-07-21 230 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> 

你如果您不想打印每條記錄上的所有屬性,可以調整此設置以滿足您的需要。

相關問題