我有一些带有has_many关联的Post模型。Rails查询中的自定义排序
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是比例因子。我将如何做到这一点?
我同意你在某种程度上的答案,但是如果你想做分页或者只是检索前N个结果,那么从数据库检索所有记录可能会产生问题 – Lummo