在Rails中添加特定列中的所有行?

时间:2011-12-28 11:49:59

标签: ruby-on-rails ruby

我有两个表:一个名为Projects,另一个名为Documents(项目有很多文档,文档属于项目)。

Projects表有一个“limit”整数列,用户可以在其中指定所需的文档数。

我希望将所有限制加起来并获得单个值。因此,例如,如果项目A的限制为5,项目B的限制为10,项目C的限制为8,我希望能够显示“23”。

适当的Ruby命令是什么?

1 个答案:

答案 0 :(得分:6)

ActiveRecord::Base将SQL SUM函数公开为sum方法,所以

Project.sum(:limit)

应该做的伎俩。这可以了解范围等,所以你可以做到

Project.where(:active => true).sum(:limit)

仅计算active为真或

的行的总和
person.projects.sum(:limit)

总结与人相关的项目的限制(假设人has_many或habtm项目)

MINMAXAVERAGE以类似方式曝光。