我有一个模型Products
,belongs_to
模型Kit
Kithas_many
Products
¿我如何将属于一个套件的每个产品的价格加起来?
我试过了,没有运气:
@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)