如何在ror中添加列值

时间:2014-09-14 08:27:52

标签: ruby-on-rails ruby-on-rails-4

我是rails的新手。我正在构建一个购物车应用程序,用户可以在购物车中添加项目。所以,我在MySql数据库中有一个表line_items,其中我有两列({{1} },cart_id)。我想添加具有相同quantity的所有quantities。例如,使用cart_id我有三个数量(2,4,3)。所以,我如何添加所有的数量,这将给我结果9。

我可以在Mysql中这样做:

cart_id=5

但是在ROR中如何做。

2 个答案:

答案 0 :(得分:1)

假设您的line_items表对应于LineItem ActiveRecord模型,您可以这样做:

LineItem.where(cart_id: 5).sum(:quantity)

答案 1 :(得分:0)

您可以使用SQL alias column

#app/models/cart.rb
class Cart < ActiveRecord::Base
   has_many :line_items do
      def total
         sum :quantity
      end
   end
end

这将允许您拨打以下电话:

@cart = Cart.find x
@cart.line_items.total #-> total of quantities