如何使用多列输入设置默认范围顺序

时间:2012-09-17 02:45:53

标签: ruby-on-rails activerecord

我的应用程序除了通常的:votes:badges列外,还有一个包含两个整数列:id:timestamp的用户模型。

目前,用户的默认范围是:

default_scope order: 'users.created_at DESC'

如何通过由以下各项组成的排名算法更新默认范围以进行排序:投票:徽章?

我的算法是:

ranking = 2 * votes + badges

这样做的最佳方式是什么?

我希望能够在模型中创建一个方法,如下所示,但这不起作用

def ranking
  2 * self.votes + self.badges
end

我是否需要在数据库中创建ranking列? 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:3)

你应该可以写

default_scope order("votes * 2 + badges")