rails渲染部分模板,集合不起作用

时间:2015-03-10 14:41:25

标签: ruby-on-rails partials

找到了一些类似的答案,但似乎没有人适合。 我还阅读了http://guides.rubyonrails.org/layouts_and_rendering.html,第3.4.5章,渲染集合。

我想呈现以下部分内容:(users/_user_append.html.erb

<%= content_tag_for(:tr, user) do %>
  <td class="dim"><%= user.id %></td>
  <td><%= user.lastname %></td>
  <td><%= user.firstname %></td>
  <td><%= user.company %></td>
  <td><%= user.email %></td>
  <td class="fadeactions col-md-2">
    <%= link_to(content_tag(:i, nil, class: 'fa fa-minus-square-o'),
        remove_mailgroup_user_path(@mailgroup, user),
          :method => :delete, remote: true,
          :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')),
            toggle: "tooltip", title: "Remove user", placement: 'top'
          }
        )
     %>
  </td>
<% end %>

渲染的调用如下:

<%= render partial: 'users/user_append', collection: @users, as: :user %>
根据我的理解,

...as: :user...应该将集合传递给部分。 但是,浏览器中没有任何内容。 谁发现了这个bug?非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

经过一番讨论后,我们意识到问题是,就像你调用你的部分一样,而是你定义@users的方式。由于未正确定义,部分人无法接收:user参数。

解决方案是要改变

<%= render partial: '/users/user_append', collection: @users, as: :user %>

<%= render partial: '/users/user_append', collection: @mailgroup.users, as: :user %>