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

Rails sum all prices inside a record

我有一个模型 Productsbelongs_to 模型 Kit

套件has_manyProducts

¿如何汇总属于一个套件的每个产品的所有价格?

我试过了,没有成功:

@kitprice = Kit.products.price.sum

问题有点模棱两可。假设您有一个名为 kit 的 Kit 实例,并且一个 kit 有许多 product 对象;以下将为您提供所需的结果。

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

基本上您需要遍历每个产品对象并计算总和,因为它有很多关系。

试试这个:

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

就我而言,我的钱包有很多操作

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

这将为您提供每个套件及其产品的总和,我假设您的套件模型中有一个名为 name 的列

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

如果你想要所有套件产品的总和:

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

我相信以下应该有效:

Active Record 集合

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

Ruby数组

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