1

私のアプリケーションには、通常の列と列に加えて、2 つの整数列:votesとを持つユーザー モデルがあります。:badges:id:timestamp

現在、ユーザーのデフォルトのスコープは次のとおりです。

default_scope order: 'users.created_at DESC'

:votes :badges で構成されるランキング アルゴリズムによって順序付けられるようにデフォルトのスコープを更新するにはどうすればよいですか?

私のアルゴリズムは次のとおりです。

ranking = 2 * votes + badges

これを行う最善の方法は何ですか?

次のようにモデルにメソッドを作成できると期待しましたが、これは機能しません

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

rankingデータベースに列を作成する必要がありますか? どうもありがとうございました!

4

1 に答える 1

3

You should be able to write

default_scope order("votes * 2 + badges")
于 2012-09-17T03:06:02.170 に答える