Rails パーシャルを理解するのに役立つ短い質問があります。RoR は初めてで、Rails を使用したアジャイル Web 開発に取り組んでいます。あなたが同じ本を持っているなら、私はイテレーション F1 にいます。
パーシャルを使用していない場合、カートの show.html.erb は次のようになります。
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<!-- START_HIGHLIGHT -->
<h2>Your Cart</h2>
<table>
<!-- END_HIGHLIGHT -->
<% @cart.line_items.each do |item| %>
<!-- START_HIGHLIGHT -->
<tr>
<td><%= item.quantity %>×</td>
<td><%= item.product.title %></td>
<td class="item_price"><%= number_to_currency(item.total_price) %></td>
</tr>
<!-- END_HIGHLIGHT -->
<% end %>
<!-- START_HIGHLIGHT -->
<tr class="total_line">
<td colspan="2">Total</td>
<td class="total_cell"><%= number_to_currency(@cart.total_price) %></td>
</tr>
<!-- END_HIGHLIGHT -->
<!-- START_HIGHLIGHT -->
</table>
<!-- END_HIGHLIGHT -->
<%= button_to 'Empty cart', @cart, method: :delete,
data: { confirm: 'Are you sure?' } %>
次に、パーシャルの使用を開始するときに、_cart.html.erb というクラスを作成し、これを入れました。
<h2>Your Cart</h2>
<table>
<%= render(cart.line_items) %>
<tr class="total_line">
<td colspan="2">Total</td>
<td class="total_cell"><%= number_to_currency(cart.total_price) %></td>
</tr>
</table>
<%= button_to 'Empty cart', cart, method: :delete, data: { confirm: 'Are you sure?' } %>
そして、私の show.html.erb をこれに変更しました:
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<%= render(@cart) %>
だから、私の混乱は、パーシャルがないのになぜ @cart.something を使わなければならないのかということです。私の理解では、それは私が使用していたモデルで、carts.rb と呼ばれていました。それで、パーシャルを作成するとき、@cart の代わりに単にカートを使用するだけで、パーシャルはまだモデルを使用していますか?
しかし、なぜ render(@cart) を使用するのでしょうか? このコマンドは、部分的な_cart.html.erbを使用しているだけですか? それを完全に理解するのを手伝ってくれる人はいますか?おそらくそのとおりですが、現時点では少し混乱しています:)