1

假设,有表称为User,和Community

社区是由用户创建的,它有 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
4

1 回答 1

1

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

@user.summarized_number = Community.sum(:cached_votes_up, :conditions => ["user_id = ?", @user.id])
于 2013-01-20T17:37:50.060 回答