在 where 语句后对 5 个对象求和



>我有 5 个对象的活动记录如下

@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').first(5)

我想知道所有 5 张照片的qty_sold总和

这不起作用

@top_sold.sum(:qty_sold(

非常感谢

.first 返回 Array ,改用 limit (返回 ActiveRecord::Relation (。

@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').limit(5)

你可以做的Array

@top_sold.map(:qty_sold).inject(:+)
您是否

尝试过将sum附加到查询中?

@top_sold = Photo.where(photographer_id: @photog)
                 .order('qty_sold DESC').first(5).sum('qty_old')

如果您需要原始结果集,那么@Nithin答案就是您想要做的。

最新更新