Je pense qu'il est courant d'utiliser chacun dans un modèle de vue, comme lors de l'affichage d'un index.
Rails a une méthode qui vous permet d'afficher le même élément plusieurs fois à l'aide d'un modèle partiel sans avoir à écrire chacun.
À titre d'exemple, considérons le cas où l'utilisateur est affiché sous forme de tableau. Si vous avez un contrôleur comme celui ci-dessous
users_controller.rb
def index
@users = User.all
end
Vous pouvez utiliser chacun pour générer une table comme suit:
erb:index.html.erb
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
<% end %>
Vous pouvez utiliser la méthode render pour exprimer la répétition à l'aide de partiels partiels.
erb:index.html.erb
<%= render partial: "user", collection: @users %>
Préparez un partiel.
erb:_user.html.erb
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
Si vous spécifiez une collection dans l'option de collection de la méthode de rendu, le nombre d'éléments et de partiels partiels est incorporé à cette position. Les variables locales dans les partiels partiels sont nommés d'après le nom du partiel.
Si vous renommez le partiel en client
<%= render partial: "client", collection: @users %>
La variable locale dans le partiel partiel est client.
erb:_client.html.erb
<tr>
<td><%= client.name %></td>
<td><%= client.email %></td>
</tr>
Veuillez noter qu'il ne s'agit pas de la forme singulière de la variable spécifiée dans la collection. De plus, lors de l'ajout de l'option de collection, partial ne peut pas être omis.
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>
L'affichage répété de modèles partiels sans utiliser de collection entraînera de mauvaises performances. Lorsque vous appelez le modèle partiel à plusieurs reprises, utilisez l'option de collection.
erb:index.html.erb
<%= render @users %>
erb:_user.html.erb
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
Si vous passez une collection comme argument de la méthode de rendu, le nom partiel sera déduit du nom de modèle de l'élément.
L'auteur de cet article est un débutant qui commence à peine à apprendre la programmation. Je vous serais reconnaissant si vous pouviez signaler des erreurs.
référence Notes sur les performances lors du rendu des partiels [Guide des rails](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