Rails对记录内的所有价格求和



我有一个模型Products,belongs_to模型Kit

Kithas_manyProducts

¿我如何将属于一个套件的每个产品的价格加起来?

我试过了,没有运气:

@kitprice = Kit.products.price.sum

试试这个:

@kitprice = kit.products.sum(:price)

在我的情况下,我有很多操作的钱包

wallet = Wallet.first
amount = wallet.operations.sum(:amount)

问题有点模棱两可。假设您有一个名为Kit的实例Kit,一个工具包有许多产品对象;下面的步骤可以得到你想要的结果。

sum = 0
kit_id = <enter kit id here>
kit = Kit.find_by_id(kit_id)
# iterate through every product object and compound price here
kit.products.each{|product| sum = sum + product.price} 
puts sum

基本上你需要遍历每个product对象并计算和,因为它是一个有许多关系。

这将给你的每一个试剂盒与它的产品的总和,我假设有一个列命名为名称在你的试剂盒模型

@kit_products_price = Kit.includes(:products).group(:name).sum('products.price')

如果您想要所有试剂盒产品的总和:

@kit_price = Kit.includes(:products).sum('products.price')

我认为下面应该可以工作:

活动记录收集

@total = kit.products.sum("price")

Ruby数组

@total = kit.products.sum(&:price)

最新更新