我有帐户模型,
class Account < ActiveRecord::Base
has_many :account_games
def score
account_games.map(&:score).sum
end
end
和AccountGame:
class AccountGame < ActiveRecord::Base
belongs_to :account
end
获得最高分的帐户的最佳方法是什么?如您所见,得分是相关account_games得分字段的总和。
谢谢
答案 0 :(得分:1)
尝试
Account.joins(:account_games).sum('account_games.score', group: :account_id, order: 'sum_account_games_score')
将为您提供哈希,其中键是account_ids,值是总分。
您可以将限制选项传递给帐户以获取前x个帐户。
之类的东西Account.limit(10).joins(:account_games).sum('account_games.score', group: :account_id, order: 'sum_account_games_score DESC')