不确定在 Rails 中使用偏音

Unsure about using partials in Rails

所以我正在做 Michael Hartl 的 railstutorial 并在第 9 章。这段代码用于分页,其中渲染用户渲染部分(名为 _user),其中嵌入 ruby 个人资料图片和用户名

<% 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,它导致了一个错误。感谢您的帮助。

它知道您创建的 @users 集合是由 class User 的实例组成的,因此当您在视图中调用 render @users 时,它查找名为 _user.html.erb 的文件,并为集合中的每个 User 实例端到端地呈现该文件。在局部中,您可以使用 user.

访问局部对应的 User 实例的迭代

如果您有一个名为 @my_collection 的集合,并且它由 class Howdy 的实例组成,那么 render @my_collection 将查找名为 _howdy.html.erb 并为 @my_collection 中的每个 Howdy 实例渲染它。局部的对应 Howdy 实例的迭代将在局部中作为 howdy 访问。