为什么Rails会运行一个partial两次?

3

我在视图中这样调用一个局部视图:

<%= render :partial => 'events/attendees', :collection => @attendees %>

该部分代码似乎因某种原因运行了两次...这是部分代码:

<% @attendees.each do |user| %>

    <li><%= link_to user.name, user %></li>

<% end %>

我确认了Rails确实两次运行了这个部分,因为输出显示@attendees中的每个项目都出现了两次。

1个回答

8

这是因为一个“循环”来自Rails(:collection意味着Rails将为集合中的每个项目渲染部分内容,在这种情况下是@attendees),而另一个循环通过您自己的部分进行。

将部分更改为以下内容(不确定出席者/用户之间的关系,但这是一个样例):

<li><%= link_to attendee.name, attendee.user %></li>

或者将部分调用更改为:

<%= render :partial => 'events/attendees' %>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接