我在这样的集合中呈现部分:
<%= 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
答案 0 :(得分:4)
您可以为:spacer_template
电话提供render :partial => X, :collection => Y
选项。有关用法,请参阅ActionController::Base
documenation。
为简单的<hr />
元素指定一个完整的部分文件可能会感觉很苛刻,但是这条路线可以保持你的意图清晰,并保持项目部分不含无关的分隔符标记。
答案 1 :(得分:0)
我认为如果修改render_partial_collection方法,可以实现这一点。
作为旁注:在我看来,您应该在无序列表中使用CSS:我感觉您将标记HR插入样式而不是使用它来在语义上分隔集合中的项目(在标记语义中) )。