rails 渲染带有集合的部分模板不工作
rails render partial template with collection not working
找到了一些类似的答案,但似乎没有一个合适。
我还阅读了 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...
应该将集合传递给部分集合。
但是,浏览器中什么也没有出现。
谁发现了错误?非常感谢您的帮助。
经过一番讨论,我们意识到问题 不是 您调用部分的方式,而是您定义 @users
的方式。由于它们没有正确定义,部分无法接收 :user
参数。
解决方案是要改变
<%= render partial: '/users/user_append', collection: @users, as: :user %>
到
<%= render partial: '/users/user_append', collection: @mailgroup.users, as: :user %>
找到了一些类似的答案,但似乎没有一个合适。 我还阅读了 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...
应该将集合传递给部分集合。
但是,浏览器中什么也没有出现。
谁发现了错误?非常感谢您的帮助。
经过一番讨论,我们意识到问题 不是 您调用部分的方式,而是您定义 @users
的方式。由于它们没有正确定义,部分无法接收 :user
参数。
解决方案是要改变
<%= render partial: '/users/user_append', collection: @users, as: :user %>
到
<%= render partial: '/users/user_append', collection: @mailgroup.users, as: :user %>