ruby-on-rails - Rails Redis 排行榜

标签 ruby-on-rails postgresql leaderboard

我正在使用 Leaderboard gem 在 Rails 中开发排行榜应用程序。我将我的数据存储在 postgres 中,并将其用于 Redis。目前我得到的输出是哈希数组:

[{:member=>"Elinor", :rank=>1, :score=>993.0}, {:member=>"Glennie", :rank=>2, :score=>986.0}, {:member=>"Dudley", :rank=>3, :score=>982.0}, {:member=>"Aashish", :rank=>4, :score=>900.0}, {:member=>"Daron", :rank=>5, :score=>899.0}, {:member=>"Telly", :rank=>6, :score=>878.0}, {:member=>"Lois", :rank=>7, :score=>828.0}, {:member=>"Aaron", :rank=>8, :score=>825.0}, {:member=>"Rosa", :rank=>9, :score=>819.0}, {:member=>"Gaylord", :rank=>10, :score=>795.0}, {:member=>"Enrico", :rank=>11, :score=>790.0}, {:member=>"Fabiola", :rank=>12, :score=>788.0}, {:member=>"Orville", :rank=>13, :score=>778.0}, {:member=>"Christiana", :rank=>14, :score=>768.0}, {:member=>"Whitney", :rank=>15, :score=>753.0}, {:member=>"Lera", :rank=>16, :score=>750.0}, {:member=>"Manuel", :rank=>17, :score=>749.0}, {:member=>"Eli", :rank=>18, :score=>737.0}, {:member=>"Keshawn", :rank=>19, :score=>722.0}, {:member=>"Bernadine", :rank=>20, :score=>718.0}, {:member=>"Aliza", :rank=>21, :score=>675.0}, {:member=>"Hermann", :rank=>22, :score=>622.0}, {:member=>"Reina", :rank=>23, :score=>606.0}, {:member=>"Emmy", :rank=>24, :score=>552.0}, {:member=>"John", :rank=>25, :score=>541.0}, {:member=>"Mohamed", :rank=>26, :score=>538.0}, {:member=>"Summer", :rank=>27, :score=>523.0}, {:member=>"Brooks", :rank=>28, :score=>521.0}, {:member=>"Lorenz", :rank=>29, :score=>476.0}, {:member=>"Pink", :rank=>30, :score=>431.0}, {:member=>"Frances", :rank=>31, :score=>401.0}, {:member=>"Ervin", :rank=>32, :score=>387.0}, {:member=>"Rubye", :rank=>33, :score=>374.0}, {:member=>"Neoma", :rank=>34, :score=>350.0}, {:member=>"Jaunita", :rank=>35, :score=>348.0}, {:member=>"Jessie", :rank=>36, :score=>315.0}, {:member=>"Joyce", :rank=>37, :score=>298.0}, {:member=>"Samantha", :rank=>38, :score=>290.0}, {:member=>"Jackson", :rank=>39, :score=>266.0}, {:member=>"Spencer", :rank=>40, :score=>257.0}, {:member=>"Adrianna", :rank=>41, :score=>254.0}, {:member=>"Myrtice", :rank=>42, :score=>238.0}, {:member=>"Hannah", :rank=>43, :score=>236.0}, {:member=>"Carrie", :rank=>44, :score=>233.0}, {:member=>"Marlee", :rank=>45, :score=>218.0}, {:member=>"Nyasia", :rank=>46, :score=>207.0}, {:member=>"Jennie", :rank=>47, :score=>201.0}, {:member=>"Kristy", :rank=>48, :score=>185.0}, {:member=>"Kristofer", :rank=>49, :score=>149.0}, {:member=>"Gonzalo", :rank=>50, :score=>131.0}, {:member=>"Lacey", :rank=>51, :score=>128.0}, {:member=>"member_10", :rank=>52, :score=>10.0}, {:member=>"member_9", :rank=>53, :score=>9.0}, {:member=>"member_8", :rank=>54, :score=>8.0}, {:member=>"member_7", :rank=>55, :score=>7.0}, {:member=>"member_6", :rank=>56, :score=>6.0}, {:member=>"member_5", :rank=>57, :score=>5.0}, {:member=>"member_4", :rank=>58, :score=>4.0}, {:member=>"member_3", :rank=>59, :score=>3.0}, {:member=>"84849296", :rank=>60, :score=>3.0}, {:member=>"member_2", :rank=>61, :score=>2.0}, {:member=>"84849294", :rank=>62, :score=>2.0}, {:member=>"member_1", :rank=>63, :score=>1.0}, {:member=>"84849297", :rank=>64, :score=>1.0}, {:member=>"84849295", :rank=>65, :score=>1.0}, {:member=>"84849293", :rank=>66, :score=>1.0}, {:member=>"84849292", :rank=>67, :score=>1.0}]

我尝试将其转换为 json 并按照文档进行转换,但响应仍未转换。

我在 Controller 中的显示方法如下:

def show
  setredis 
  @users = User.all
  @users.each do|f|  
  name = f.name
  score = f.score
  @highscore_lb.rank_member(name, score).to_json
end

设置方法

def setredis
  redis_options = {:host => '127.0.0.1', :port => 6379, :db => 1}
@highscore_lb = Leaderboard.new('highscores', Leaderboard::DEFAULT_OPTIONS, redis_options)

end

我也尝试使用每个循环,但数据仍然没有被解析。任何帮助,将不胜感激。 谢谢

最佳答案

试试这个

index.html.erb

<% @highscore_lb.members_from_rank_range(1, 100).each_with_index do |c, i|  %>
<tbody>
<tr>
  <td><%=  c[:member] %></td>
  <td><%= c[:score] %></td>
  <td><%= c[:rank] %></td>
</tr>      
<% end %>

用户 Controller

def show
setredis 
@users = User.all
@users.each do|f|  
name = f.name
score = f.score
@highscore_lb.rank_member(name, score)
end

关于ruby-on-rails - Rails Redis 排行榜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43602609/

相关文章:

ruby-on-rails - 删除 Assets 预编译的console.log

encryption - 非网页游戏的安全在线高分列表

MySQL 排名与表中的高分不匹配

iphone - Gamer Center 排行榜不显示分数,每个用户只能访问自己的分数

javascript - 在 Rails 中有没有办法为文本实现 image_tag 类型的鼠标悬停? JavaScript 和 CSS 解决方案不起作用

javascript - 滚动到特定标签

ruby-on-rails - bundle 安装失败 - Gem 使用 github url - 出了什么问题?

Postgresql 服务器正在本地计算机上运行,​​但 psql 无法连接

java - 完全支持 PostgreSQL 数据类型的 JPA 实现?

ruby-on-rails - 关联依赖于 Rails 中的数据库吗?