我有5个对象的活动记录,如下所示
@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').first(5)
我想知道所有5张照片的qty_sold总和
这不起作用
@ top_sold.sum(:qty_sold)
非常感谢adcance
答案 0 :(得分:1)
.first
返回Array
,改为使用limit
(返回ActiveRecord::Relation
)。
@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').limit(5)
答案 1 :(得分:0)
Array
你可以做
@top_sold.map(:qty_sold).inject(:+)
答案 2 :(得分:0)
您是否尝试在查询中附加sum
?
@top_sold = Photo.where(photographer_id: @photog)
.order('qty_sold DESC').first(5).sum('qty_old')
如果您需要原始结果集,那么@Nithin回答就是您想要做的。