私はrailsとsqlに比較的慣れていません。私は本番環境でpostgresを使用しています。
私はLike
モデルを持っていて、ポリモーフィズムを通して、それは属性を持っていますlikeable_type
、そしてlikeable_id
、これは私のPhoto
モデルのアイテムがユーザーによって「好き」である方法です。like.likeable
好きなオブジェクトがとして、写真のIDがとしてある場合とPhoto
同じlikeable_type
ように、同じようなオブジェクトを介して写真にアクセスすることもできますlikeable_id
。
私の質問:過去24時間で最も高く評価された写真のリストを取得できるようにしたいのですが、最も高く評価された写真が一番上に、最も低く評価された写真が一番下に表示されます。どうすればよいですか?
これまでのところ、私のコードは次のようになります。
likes = Like.find(:all, :conditions => { :created_at => 1.days.ago.utc...Time.now.utc, :likeable_type => "Photo" })
likes = likes.group( --- something here --- , SUM( --- something here --- ))
しかし、正しい構文が何であるかを完全に理解することはできません。
どんな助けでも大歓迎です!