我有两个表:一个名为Projects,另一个名为Documents(项目有很多文档,文档属于项目)。
Projects表有一个“limit”整数列,用户可以在其中指定所需的文档数。
我希望将所有限制加起来并获得单个值。因此,例如,如果项目A的限制为5,项目B的限制为10,项目C的限制为8,我希望能够显示“23”。
适当的Ruby命令是什么?
答案 0 :(得分:6)
ActiveRecord::Base
将SQL SUM
函数公开为sum方法,所以
Project.sum(:limit)
应该做的伎俩。这可以了解范围等,所以你可以做到
Project.where(:active => true).sum(:limit)
仅计算active
为真或
person.projects.sum(:limit)
总结与人相关的项目的限制(假设人has_many
或habtm项目)
MIN
,MAX
和AVERAGE
以类似方式曝光。