ruby-on-rails - 建立一个与之前位置不同的排名列表,比如排名 2 (+6)

标签 ruby-on-rails database activerecord

我正在尝试建立一个基于投票的排名列表(在 Ruby on Rails 上)

我没有排名和增量值。 我的表有大约 300 条记录

post id,  votes,  ranking,  increment 
1,        22,     1,        +3
2,        16,     2,        -1
3,        13,     3,        +6
4,        7,      4,        -2

我对如何构建增量部分感到困惑,例如,根据之前的位置上升或下降了多少位置。

我想知道我该如何构建它 我是否应该使用每天/每小时运行的 cron 作业来根据投票更新排名增量?

如何计算排名和增量?我应该有一个 prev_ranking 列而不是 increment 吗?

谢谢

最佳答案

您可以做的一个建议是使用像 Resque 这样的后台任务库来排队作业,并使用 Resque 调度程序在后台运行

有了它,您可以每天/每小时执行一次任务来查看当前排名,根据新投票计算新排名,然后找到新排名与当前排名之间的差异以获得排名变化

关于ruby-on-rails - 建立一个与之前位置不同的排名列表,比如排名 2 (+6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34277606/

相关文章:

ruby-on-rails - 尝试生成 Rails 脚手架后中止陷阱 6

ruby-on-rails - 如何使用 rails 从 URL 下载图像并将其保存到本地磁盘(计算机)?

ruby-on-rails - 嵌套资源错误 : Circular dependency detected while autoloading constant

mysql - 将数据库中的前 10 名球员打印到页面上的最简单方法是什么?

java - 'forUpdate().fetchAny(condition)' 会只锁定一行还是多行?

ruby-on-rails - before_validation,在 : :save vs before_save

ruby-on-rails - 我如何优化这些范围

html - 自定义 collection_check_boxes

c# - 用随机数字更新多行

ruby-on-rails - ruby on rails jsonb 列默认值