我有一个带有一些 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 个参数(投票、评论、评分)对其进行排序,但还添加了与 成反比的第四个参数created_at
,因此较新的帖子将排名较高,而较旧的帖子将排名较低。总之,排序指标将类似于:
( F*(1/created_at) + votes.count + comments.count + ratings.count
),其中 F 是比例因子。我该怎么做?