不确定在Rails中使用partials

时间:2015-11-02 23:12:50

标签: ruby-on-rails partials

所以我正在做迈克尔·哈特尔的铁路教程,我在第9章。这一段代码用于分页,其中渲染用户渲染部分(名为_user),其中包含用于个人资料图片和用户名的嵌入式红宝石

<% provide(:title, 'All users') %>
<h1>All users</h1>

<%= will_paginate %>

<ul class="users">
  <% @users.each do |user| %>
  <%= render user %>
  <% end %>
</ul>

<%= will_paginate %>

但是这段代码被重构为

<% provide(:title, 'All users') %>
<h1>All users</h1>

<%= will_paginate %>

<ul class="users">
  <%= render @users %>
</ul>

<%= will_paginate %>

我现在的问题是Rails如何知道渲染部分_user,因为没有明确的指示这样做?我试过更改部分的名称来弄清楚如何,但我还是不知道。例如,我重命名了部分_users并导致错误。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

它知道您所创建的@users集合由类User的实例组成,因此当您在视图中调用render @users时,它会查找名为{的文件{1}}并为集合中的每个_user.html.erb实例端到端地呈现该文件。在partial中,您可以使用User访问部分对应的User实例的迭代。

如果您有一个名为user的集合,它由类@my_collection的实例组成,那么Howdy会查找名为render @my_collection的部分并呈现它对于_howdy.html.erb中的每个Howdy实例。部分对应的@my_collection实例的迭代可以在部分内以Howdy形式访问。