2013-01-20 20 views
1

假設,有表稱爲User,並且由用戶創建的Community如何獲得少數幾列中的總值?

社區,它已user_id說明。
社區的用戶數量也喜歡社區。

比方說

有這些社區。 ()中的數字是喜歡社區的用戶數量。

  • 社區A(17),社區所有者是USER_ID '2'
  • 社區B(35)中,社區所有者是USER_ID '1'
  • 社區C(8),社區所有者是USER_ID「2 '

我想獲得喜歡User'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

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

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

非常感謝! – cat