在rails上的ruby中进行计算Model.sum()

时间:2014-02-24 23:09:56

标签: ruby-on-rails ruby summarization

我有一个名为Data的模型和一些名为timestamp,value1和value2的列。我想将它与highstock图表一起使用。

在打印图表之前,我想对其进行一些计算:

将value2(value1 / value2)除以每天,每月或每年的值1的结果汇总,并将其放在[[timestamp_day,value1 / value2],[...],...]等数组中。

我可以进行“时间戳分组”。但我总结一下总结value1 / value2。

有没有办法像.sum(value1 / value2)那样做?或者有没有办法定义进行计算的虚拟列?

谢谢&最好的问候,安德烈亚斯

2 个答案:

答案 0 :(得分:1)

如果您正试图从数据库中直接获取计算值,则可以将表达式传递给活动记录总和函数。

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

答案 1 :(得分:1)

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

@collection是所有数据的集合/数组

执行collect后,@ array将采用这种格式:[[timestamp_day,value1 / value2],[...],...]

有一点不清楚的是分母是什么。我在这里使用“3”但可能是你想要的任何东西。如果它是一个复杂的操作,你甚至可以调用另一种方法来获取它。