2012-01-15 118 views
25

例子,我有:Rails如何總結列?

@test = Pakke.find([[4], [5]]) 

在我Pakke表我有一個名爲列prismd

如何總結這兩個數值爲prismd 列@Test?

+0

你一定要帶一些訂單到您的陣列。這是非常令人困惑什麼你實際上是試圖做的,只是嘗試,直到它似乎是工作沒有做到這一點的最好辦法。而是試着去思考你真正想要達到的目標,並相應地組織你的數據結構。也分裂了您的實際問題,在5個或更多的問題,這裏將幫助不大.... – 2012-01-16 00:05:31

+0

我會盡力。這是有點複雜,我想要做的。只知道我主要希望它的工作,因爲它花了很多時間找到正確的解決方案。 – 2012-01-16 00:13:46

回答

42

您可以直接在數據庫中創建相應的SQL這樣總結有關更多使用示例和一般文檔,請參見ActiveRecord::Calculations

1
Pakke.find([[14], [15]]).map(&:prismd).sum 
23

的ActiveRecord有一堆內置的計算方法,包括sum

Pakke.sum(:prismd, :conditions => {:id => [4,5]}) 

@test = Pakke.where(:id => [4, 5]).sum(:prismd) 
+3

僅供參考,**不要**使用'的.sum(:prismd)'。這將通過Ruby完成計算。做@約旦說會通過SQL來完成計算,並且**很**,** **更快。 – 2014-12-07 17:53:18

1

測試= Order.where(potential_student_id:potential_student.id)的.sum( 「TOTAL_PRICE」);

+4

你能多解釋一下嗎? – 2017-01-12 08:31:49

+0

Pakke.where(ID:[4,5])。總和( 「prismd」) – KevinLi 2017-01-14 04:52:22