1
私はmongodbでユーザーランキングを実装しようとしています。rails3とmongodbを使ったユーザーランキング
field :score, type: Integer, :default => 0
field :solution_count, type: Integer, :default => 0
、もう1つは簡単にこのようになめらかでくださいすることができ、スコアテーブル内のすべてのユーザーが一覧表示する:
User.desc(:score, :solution_count).page(params[:page])
をしかし質問は次のとおりですので、ユーザーには2つのフィールドがあり、ユーザーのランクを表示する方法ユーザーページ?
我々がと適切それを更新する方法店のランクが、に必要なことは明らかですか?
それを行うための最も簡単な方法は、このようななめらかです:
# in user.rb
field :rank, type: Integer
# add rake task and execute is with Cron every 10 minutes for example
task :build => :environment do
User.desc(:score, :solution_count).each_with_index do |user, position|
user.update_attribute(:rank, position + 1)
end
end
任意のアイデア、より良い、それを実装する方法?
しかし、どうすればユーザーページに表示できますか?私はDBに格納し、このuser.rankのようなビューでアクセスする必要があります – makaroni4
私のコードサンプルを読んでください。 DBからユーザーを取得し、実行時にランクを計算します。次に、あなたはそれを表示することができます。 –
私はそれを得ましたが、それを行う適切な場所はどこですか?このランク付けされたものをすべて赤字にする必要がありますか? – makaroni4