如何在几列中获得值的总汇总数?

时间:2013-01-20 17:30:57

标签: ruby-on-rails ruby ruby-on-rails-3

假设有一些名为UserCommunity

的表格

社区由用户创建,并且具有user_id 社区也有喜欢该社区的用户数量。

让我们说

有这些社区。 ()中的数字是喜欢社区的用户数。

  • 社区A(17),社区所有者是user_id'2'
  • 社区B(35),社区所有者是user_id'1'
  • 社区C(8),社区所有者是user_id'2'

我想获得喜欢用户'2'他的社区的用户的总结数量。 它应该是25(17 + 8),这里。

我怎么能得到这个?

它应该是这样的? cached_votes_up拥有喜欢该社区的用户数量。

@user = User.find(2)
@communities = Community.find(@user).
@user.summarized_number = @communities.cached_votes_up.count
@user.save

1 个答案:

答案 0 :(得分:1)

您可以使用ActiveRecord::Calculations#sum方法:

@user.summarized_number = Community.sum(:cached_votes_up, :conditions => ["user_id = ?", @user.id])