ruby-on-rails – 如何在rails中对列进行求和?

  <% @cart.items.each do |item| %>
    <div class="holder">

        <div class="image"><%= link_to (image_tag (item.product.avatar.url(:thumb))), item.product %></div>
        <div class="title"><%= link_to item.product.title, item.product %></div>

        <div class="count"><%= item.count %></div>
        <div class="price"><%= number_to_currency(item.product.price, :unit => '€ ') %></div>
        <div class="description"><%= item.product.description.truncate(110).html_safe %></div>
    </div>
  <% end %>

  <div class="total">Total price: @price</div>

我想得到每个购物车的item.product.price列的总和,然后将其显示在购物车列表的末尾.怎么办?

最佳答案
您可以使用arel实现此目的,它可以避免加载项目及其产品,因此您不会因为购物车中的商品一样多次查询:

@cart.items.joins(:product).sum("products.price")

这将导致如下查询:

SELECT SUM(products.price) AS sum_id 
FROM `items` 
INNER JOIN `products` ON `products`.`id` = `items`.`product_id` 
WHERE `items`.`cart_id` = 1

转载注明原文:ruby-on-rails – 如何在rails中对列进行求和? - 代码日志