为每个项目渲染一个部分

时间:2013-11-11 10:39:45

标签: ruby-on-rails ruby-on-rails-4 partial

我有一大堆客户端,我希望能够在不同的场合循环(或显示一个)。我以为我很聪明,并且只为一个客户使用。

似乎部分没有渲染。如果我只是一些简单的'asd'或真正的交易它在我的页面上都没有显示任何方式。

我很确定有客户在场。

我的代码有问题吗?:

我的 clients / index.html.erb

<% @usersGroups.each do |group| %>
  <h1><%= group.name %></h1><br><br>
  <% if group.clients.length > 0 %>
    <% group.clients.each do |client| %>
      <% render partial: 'single_client', locals: {cl: client} %>
    <% end %>
  <% else %>
    Nog geen clienten in deze groep.
  <% end %>
<% end %>

和我的 clients / _single_client.html.erb

xx<%= cl %> xx
<%= link_to(cl.name, edit_client_path(cl)) %>
<br>
<% if cl.avatar %>
    <img src="<%= cl.avatar %>" width="80">
<% end %>
<br>
<%= cl.birthdate.strftime("%d-%m-%Y")%>
<br>
<% if cl.background %>
<div style="border: 1px solid #000; width: 30px; height: 30px; background: <%= cl.background %>"></div>
<% end %>

<br><br>
<%= link_to(cl.group.name, group_path(cl.group)) if cl.group %><br>
<%= link_to 'Verwijder', cl, method: :delete, data: { confirm: "Weet u zeker dat u #{cl.name} wil verwijderen?" } %>

我尝试过使用render 'single_client',但无济于事。

2 个答案:

答案 0 :(得分:2)

而不是

<% group.clients.each do |client| %>
  <% render partial: 'single_client', locals: {cl: client} %>
<% end %>

<%= render partial: 'single_client', collection: group.clients %>

答案 1 :(得分:1)

替换:

<% render partial

使用:

<%= render partial