1
我想用mongodb實現用戶排名。所以用戶有兩個字段:用戶在rails3和mongodb上的排名
field :score, type: Integer, :default => 0
field :solution_count, type: Integer, :default => 0
,並列出了得分表中的所有用戶可以很容易地做到水木清華這樣的:
User.desc(:score, :solution_count).page(params[:page])
但的問題是:如何顯示用戶的排名中用戶頁面?
很明顯,我們需要商店排名但其中和如何更新正確?
最簡單的方法來做到這一點是水木清華這樣的:
# 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
任何想法如何實現它更好?
是的,但我怎麼能顯示它在用戶頁面?我需要將它存儲在數據庫中,並像這個user.rank – makaroni4 2012-04-01 21:14:48
閱讀我的代碼示例。您從DB獲取用戶並在運行時計算他們的排名。然後,您可以根據需要顯示它。 – 2012-04-01 21:15:42
我明白了,但是在哪裏可以做到這一點?可能是我應該將所有這些等級的東西移動到redis? – makaroni4 2012-04-02 06:02:16