いくつかの has_many 関連付けを持つ Post モデルがあります。
class Post < ActiveRecord::Base
...
has_many :votes
has_many :comments
has_many :ratings
end
( ) で投稿を並べ替えるクエリが必要ですvotes.count + comments.count + ratings.count
。
たとえば、ある投稿に 3 票、2 コメント、1 評価があった場合、その順序付けの「メトリック」の値は 6 になります。これを行うにはどうすればよいですか?
同じ 3 つのパラメーター (投票、コメント、評価) で注文する 2 番目のクエリも必要ですが、に反比例する 4 番目のパラメーターも追加するcreated_at
ため、新しい投稿は高くランク付けされ、古い投稿は低くランク付けされます。要約すると、順序メトリックは次のようになります。
( F*(1/created_at) + votes.count + comments.count + ratings.count
)、ここで F は倍率です。どうすればいいですか?