2009-07-14 44 views
4

我翻譯一個部分集合中是這樣的:收集計數器諧音

<%= render :partial => 'issues/issue', :collection => @issues %> 

裏面的部分,我想呈現一個


元素,除非這是最後的收藏。我當然可以,使局部這樣

<%= render :partial => 'issues/issue', :collection => @issues, :locals => {:issue_count => @issues.length } %> 

然後把這裏面我的部分

<% unless issue_counter + 1 == issue_count %> 
    <hr /> 
<% end %> 

,但我不希望有明確設置本地的渲染調用,和我該集合並不總是被稱爲@issues,所以我不能只訪問實例varibale。是否有某種方法可以在部分內自動訪問集合的長度,以確定對象在集合中的位置?如果還沒有,是否可以添加這樣的方式,我會自動獲得iss​​ue_count本地?任何幫助,將不勝感激。

THX,

-C

回答

4

您可以爲您的render :partial => X, :collection => Y呼叫提供:spacer_template選項。有關使用情況,請參閱ActionController::Base documenation

它可能會感到手足無措,指定一個簡單的<hr />元素的整個部分文件,但走這條路線保持你的意圖清晰,並保持項目部分免費無關的分頻器標記。

0

我覺得你可以做,如果你修改render_partial_collection方法這一點。

附註:對我來說,就像你應該改用無序列表上的CSS:我感覺你將標記HR插入到樣式中,而不是用它來在語義上區分集合中的項目(以標記語義)。

+0

是的,也許是這樣,但速度很快。另外,知道該怎麼做也是一件好事:) – 2009-07-15 03:55:43

+0

它不過是將你的部分內容封裝在

  • 標記集中而已。 – 2010-03-09 23:16:24