rails部分中的集合计数器

时间:2009-07-14 22:14:06

标签: ruby-on-rails collections partial-views

我在这样的集合中呈现部分:

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

在partial中,我想渲染一个


元素,除非它是集合中的最后一个元素。我当然可以像这样

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

然后把它放在我的部分

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

但是我不想在render调用中显式设置local,而且我并不总是将该集合称为@issues,所以我不能只访问实例varibale。有没有办法在部分内部自动访问集合的长度,以告知对象落在集合中的哪个位置?如果还没有,是否可以以这样的方式添加它,以便我自动获取issue_count本地?任何有关这方面的帮助将非常感激。

THX,

-C

2 个答案:

答案 0 :(得分:4)

您可以为:spacer_template电话提供render :partial => X, :collection => Y选项。有关用法,请参阅ActionController::Base documenation

为简单的<hr />元素指定一个完整的部分文件可能会感觉很苛刻,但是这条路线可以保持你的意图清晰,并保持项目部分不含无关的分隔符标记。

答案 1 :(得分:0)

我认为如果修改render_partial_collection方法,可以实现这一点。

作为旁注:在我看来,您应该在无序列表中使用CSS:我感觉您将标记HR插入样式而不是使用它来在语义上分隔集合中的项目(在标记语义中) )。