1

と呼ばれるテーブルがあり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
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 に答える