Heroku で Rails 4 + Postgres バックエンドを使用したゲームがあります。私たちの毎日のリーダーボードには、ゲームで最高の 100 のスコアが表示されます。User モデルと Score モデル (User has_many :scores) があります。
次のように期待どおりに動作します。
class Score < ActiveRecord::Base
belongs_to :user
def self.daily_leaders
where(['created_at > ? and created_at < ?', Time.now.beginning_of_day, Time.now.end_of_day]).order("points DESC").limit(100)
end
end
しかし、これを変更して、各ユーザーの最高スコアのみを表示するようにします。追加の .select() .distinct および .pluck ActiveRecord メソッドのすべての組み合わせを試しましたが、常に PG エラーが発生します。
今日だけの各ユーザーの最高得点だけを取得する適切な方法は何でしょうか?