我正在个人项目中实施类似于 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