我正在个人项目中实施类似于reddit的声誉系统,并且我有一个时间衰减公式,我想用它。我想知道:
您是否可以在activerecord信誉系统中使用基于时间的衰减公式进行加权?我见过的例子显示了简单的权重,如“:weight => 0.8”
如果没有,我该如何存储和更新这些值?我显然不希望在每个请求的每条记录上运行该计算,但它需要相当频繁地更新自己。这样做的最佳方法是什么?
更新:我正在尝试使用的公式:
time_diff = ((Time.now - @item.created_at) / 3600).round
score = (@item.reputation_for(:votes).to_i) / (time_diff + 2)**1.5
答案 0 :(得分:1)
想出来。使用rake任务并在Heroku上的调度程序上运行它。