Ich denke, es ist üblich, jede in einer Ansichtsvorlage zu verwenden, beispielsweise beim Anzeigen eines Index.
Rails verfügt über eine Methode, mit der Sie dasselbe Element mithilfe einer Teilvorlage mehrmals anzeigen können, ohne jedes Element schreiben zu müssen.
Betrachten Sie als Beispiel den Fall, in dem der Benutzer als Tabelle angezeigt wird. Wenn Sie einen Controller wie den folgenden haben
users_controller.rb
def index
@users = User.all
end
Sie können jeweils eine Tabelle wie folgt generieren:
erb:index.html.erb
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
<% end %>
Sie können die Render-Methode verwenden, um Wiederholungen mit Teilpartien auszudrücken.
erb:index.html.erb
<%= render partial: "user", collection: @users %>
Bereiten Sie einen Teilteil vor.
erb:_user.html.erb
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
Wenn Sie in der Auflistungsoption der Rendermethode eine Auflistung angeben, wird die Anzahl der Elemente und Teilpartials in diese Position eingebettet. Lokale Variablen in Teilpartials werden nach dem Partialnamen benannt.
Wenn Sie den Teil in Client umbenennen
<%= render partial: "client", collection: @users %>
Die lokale Variable im Teilteil ist client.
erb:_client.html.erb
<tr>
<td><%= client.name %></td>
<td><%= client.email %></td>
</tr>
Bitte beachten Sie, dass dies nicht die Singularform der in der Sammlung angegebenen Variablen ist. Außerdem kann beim Hinzufügen der Erfassungsoption ein Teil nicht weggelassen werden.
erb:index.html.erb
<% @users.each do |user| %>
<%= render "user", user: user %>
<% end %>
erb:_user.html.erb
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
Die wiederholte Anzeige von Teilvorlagen ohne Verwendung einer Sammlung führt zu einer schlechten Leistung. Verwenden Sie beim wiederholten Aufrufen der Teilvorlage die Erfassungsoption.
erb:index.html.erb
<%= render @users %>
erb:_user.html.erb
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
Wenn Sie eine Auflistung als Argument der Rendermethode übergeben, wird der Teilname aus dem Modellnamen des Elements abgeleitet.
Der Autor dieses Artikels ist ein Anfänger, der gerade erst anfängt, Programmieren zu lernen. Ich würde mich freuen, wenn Sie auf Fehler hinweisen könnten.
Referenz Leistungshinweise beim Rendern von Partials [Rails Guide](https://railsguides.jp/layouts_and_rendering.html#%E3%83%91%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%AB%E3% 82% 92% E4% BD% BF% E7% 94% A8% E3% 81% 99% E3% 82% 8B)
Recommended Posts