Следующий код в моей корзине пропускает цикл для каждого товара и выводит только общее количество, корректно давая общий итог корзины.
Кто-нибудь знает, почему это так?Там не дано никакой ошибки.Я использую Rails 3.1.0, а Ruby 1.9.2.
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<div class="cart_title">Your Cart</div>
<table>
<% for item in @cart.line_items %>
<% form_for item do |f| %>
<tr>
<td>
<%= f.submit value: 'Update Qty' %>
<%= f.text_field :quantity, size: 1 %>×
</td>
<td class="item_price"><%= number_to_currency(item.total_price) %></td>
</tr>
<% end %>
<% end %>
<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,
confirm: 'Are you sure?' %>
Development.log показывает это действие для корзины с двумя продуктами в ней (количество 1 каждый):
Started GET "/carts/7" for 127.0.0.1 at 2012-02-15 16:23:43 +0000
Processing by CartsController#show as HTML
Parameters: {"id"=>"7"}
Cart Load (0.1ms) SELECT "carts".* FROM "carts" WHERE "carts"."id" = ? LIMIT 1 [["id", "7"]]
LineItem Load (0.1ms) [1mSELECT "line_items".* FROM "line_items" WHERE "line_items"."cart_id" = 7
Product Load (0.1ms) SELECT "products".* FROM "products" WHERE "products"."id" = 10 LIMIT 1
Product Load (0.1ms) [1mSELECT "products".* FROM "products" WHERE "products"."id" = 11 LIMIT 1
Rendered carts/show.html.erb within layouts/application (41.4ms)
Completed 200 OK in 48ms (Views: 46.5ms | ActiveRecord: 0.9ms)