2014-10-08 74 views
0

我下面哈特爾的截屏,我們通過微柱迭代,並顯示在視圖中他們:添加標籤/類別循環微柱

<div class="span8"> 
    <% if @user.microposts.any? %> 
    <h3>Microposts (<%= @user.microposts.count %>)</h3> 
    <ol class="microposts"> 
     <%= render @microposts %> 
    </ol> 
    <%= will_paginate @microposts %> 
    <% end %> 
    </div> 
</div> 

但是我想標記每個微柱(微柱1,微柱2等...)。我怎樣才能做到這一點?

回答

1

<%= render @microposts %>呈現部分app/views/microposts/_micropost.html.erb。所以它應該只是編輯該文件的一種情況。

在本教程中,我相信micropost.html.erb文件看起來像:

<tr> 
    <td class="micropost"> 
    <span class="content"><%= micropost.content %></span> 
    <span class="timestamp"> 
     Posted <%= time_ago_in_words(micropost.created_at) %> ago. 
    </span> 
    </td> 
</tr> 

要添加一個標籤,你可以這樣做:

<tr> 
    <td class="micropost"> 
    <span class="label"><%= "Micropost #{micropost.id}" %><span> 
    <span class="content"><%= micropost.content %></span> 
    <span class="timestamp"> 
     Posted <%= time_ago_in_words(micropost.created_at) %> ago. 
    </span> 
    </td> 
</tr> 

這將增加文本'Micropost 1','Micropost 2'等於每個微博上的內容

編輯

如果你不想使用ID,只是想順序編號,那麼你可以更改代碼遍歷每個和微柱分別使它們,傳遞計數:在

<% @microposts.all.each_with_index do |micropost, index| %> 
    <%= render micropost, locals: {index: index} %> 
<% end %> 

然後你局部可以使用局部變量index

<tr> 
    <td class="micropost"> 
    <span class="label"><%= "Micropost #{index}" %><span> 
    <span class="content"><%= micropost.content %></span> 
    <span class="timestamp"> 
     Posted <%= time_ago_in_words(micropost.created_at) %> ago. 
    </span> 
    </td> 
</tr> 
+0

如果它獲得的微觀柱ID爲數字,並說有人破壞微後難道不編號被關閉....我只是希望它被編號爲1,2 ,3,4,5等每個 – 2014-10-09 16:37:53

+1

@RickyAhn是的,喲你是正確的,如果你刪除了一條記錄,使用ID的編號將被「寵壞」。我已經通過解決問題的解決方案更新了我的答案。 – 2014-10-09 17:42:33