2009-07-14 41 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