为什么rails运行两次?

Mat*_*man 3 ruby-on-rails

我在其中一个观点中称之为偏:

<%= render :partial => 'events/attendees', :collection => @attendees %>
Run Code Online (Sandbox Code Playgroud)

但是部分由于某种原因运行了两次...这里是部分:

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

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

<% end %>
Run Code Online (Sandbox Code Playgroud)

并且我验证了rails实际上运行了这个部分两次因为输出显示来自@attendees的每个项目两次

Zab*_*bba 8

这是因为一个"循环"是从Rails的(:collection意味着Rails会呈现局部集合中的每个项目,在这种情况下@attendees),通过自己的部分和一个循环.

将部分更改为以下(不确定与会者/用户之间的关系,但这里是一个示例):

<li><%= link_to attendee.name, attendee.user %></li>
Run Code Online (Sandbox Code Playgroud)

或者,将部分的调用更改为:

<%= render :partial => 'events/attendees' %>
Run Code Online (Sandbox Code Playgroud)