我的应用程序除了通常的:votes
和:badges
列外,还有一个包含两个整数列:id
和:timestamp
的用户模型。
目前,用户的默认范围是:
default_scope order: 'users.created_at DESC'
如何通过由以下各项组成的排名算法更新默认范围以进行排序:投票:徽章?
我的算法是:
ranking = 2 * votes + badges
这样做的最佳方式是什么?
我希望能够在模型中创建一个方法,如下所示,但这不起作用
def ranking
2 * self.votes + self.badges
end
我是否需要在数据库中创建ranking
列?
非常感谢你的帮助!
答案 0 :(得分:3)
你应该可以写
default_scope order("votes * 2 + badges")