2014-02-24 50 views
0

我有一個名爲Data的模型和一些名爲timestamp,value1和value2的列。我想用highstock chart來使用它。在rails上做ruby計算Model.sum()

之前圖表被印刷我想在其上一些計算:

總結VALUE1由VALUE2(值1 /值2)通過每天或每月或每年devided的結果,並把它在例如[[陣列timestamp_day,value1/value2],[...],...]。我可以做「時間戳分組」。但我總是在總結價值1 /價值2。

有沒有辦法做到像.sum(value1/value2)?還是有什麼辦法來定義一個虛擬的列進行計算?

感謝&最誠摯的問候,安德烈

回答

1

如果你想直接從數據庫中抓取的計算值,你可以傳遞一個表達式到活動記錄和功能。

Data.group(:timestamp).sum("value1/value2") 
+0

非常感謝T J,真的很簡單,我不敢相信...;) – kernification

1

@array = @ collection.collect {| c | [v.timestamp,(v.value1 + v.value2/3)]}

@collection是所有的數據收集被執行之後

@array將這種格式的收集/數組:[ [timestamp_day,value1/value2],[...],...]

不清楚的是分母是什麼。我在這裏使用「3」,但可以是任何你想要的。如果是複雜的操作,你甚至可以調用另一種方法來獲取它。