在哪里放置得分功能?

时间:2014-03-26 13:02:10

标签: ruby-on-rails

我正在实施一个评分系统,以在铁路应用程序中对趋势进行排名。要对项目进行评分,我使用的是基本数量的喜欢x年龄。

@post.score = @post.likers(User).length * age

我在posts数据库中有一个名为score的字段。我的问题是我在哪里可以调用上面的代码,以便随着年龄的增长或者有新人喜欢这个帖子而不断更新分数。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

由于它是一个不断变化的值,而不是真正的静态字段,我建议考虑将其放在一个方法中,而不是放在数据库中。除非出于性能原因需要。所以,在你的Post模型中只需:

def score
 #score algorithm here
end

这样,每当你调用post.score时,它都会在那时计算并显示出来。

或者,如果年龄是每日价值,您可以使用某种计划任务(cron / when)每天更新。

答案 1 :(得分:0)

您发布的代码应该有效。只需确保在下一行拨打@post.save。我们能看到您的代码库吗?