首页 > 解决方案 > 如何从 ids Rails 数组列表中的产品中获取价格

问题描述

我需要总结产品价格以计算在 Stripe 中收取的总价格。

我有一个Campaign模型has_many Products

我需要迭代campaign.selectedproductswhich 是一个数组,以获取其中的所有产品价格。

广告系列表格列

t.text "selectedproducts", default: [], array: true

selectedproducts 列是与产品 ID 对应的数字数组。

    2.7.2 :001 > c = Campaign.last
    2.7.2 :011 > p = c.selectedproducts
    => ["7", "8"] 

如何product.price从每个 ID 中获取并总结它们?

是否使用.map / .sum?

提前致谢!

标签: ruby-on-railsruby

解决方案


您可以使用where查找所选产品并调用sum关系来计算产品价格的总和(我假设您将美分存储在price列中)。

campaign.products.where(id: campaign.selectedproducts).sum(:price)

推荐阅读