我正在实施一个评分系统,以在铁路应用程序中对趋势进行排名。要对项目进行评分,我使用的是基本数量的喜欢x年龄。
@post.score = @post.likers(User).length * age
我在posts数据库中有一个名为score的字段。我的问题是我在哪里可以调用上面的代码,以便随着年龄的增长或者有新人喜欢这个帖子而不断更新分数。
感谢您的帮助。
答案 0 :(得分:1)
由于它是一个不断变化的值,而不是真正的静态字段,我建议考虑将其放在一个方法中,而不是放在数据库中。除非出于性能原因需要。所以,在你的Post模型中只需:
def score
#score algorithm here
end
这样,每当你调用post.score时,它都会在那时计算并显示出来。
或者,如果年龄是每日价值,您可以使用某种计划任务(cron / when)每天更新。
答案 1 :(得分:0)
您发布的代码应该有效。只需确保在下一行拨打@post.save
。我们能看到您的代码库吗?