我有5個對象的活動記錄如下後WHERE語句
@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').first(5)
我想知道qty_sold的所有5張照片
總和總結5個物體這個心不是工作
@ top_sold.sum(:qty_sold)
在adcance由於大部分
我有5個對象的活動記錄如下後WHERE語句
@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').first(5)
我想知道qty_sold的所有5張照片
總和總結5個物體這個心不是工作
@ top_sold.sum(:qty_sold)
在adcance由於大部分
.first
返回Array
,使用limit
代替(返回ActiveRecord::Relation
)。
@top_sold = Photo.where(photographer_id: @photog).order('qty_sold DESC').limit(5)
另一種解決方案是在您的陣列上使用'@ top_sold.foldl(:+)'。這樣你仍然可以使用'.first(5)' – PatoBeltran 2014-12-19 05:56:04
爲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答案就是您想要做的。
爲什麼'@ top_sold.sum(:qty_sold)'工作? – Magnuss 2014-12-19 15:43:25