如何在Rails中实现“top writer”表?

时间:2011-05-18 13:09:55

标签: ruby-on-rails ruby-on-rails-3

在我的Rails 3应用程序中,用户可以在论坛中编写消息/帖子。

我想向用户显示“Top Writes”表,例如:

Alex - 14% (i.e. 14% of forum's content was written by Alex)
Greg - 13%
Natalie - 10%
Rachel - 8%
...
  1. 您是否会在数据库中的每条消息中存储字符数(可能不包括标点符号)以及其他消息详细信息(并在编辑消息时更新)?

  2. 您是否会存储每个用户编写的字符数以及其他用户详细信息(并在用户添加/删除/更新邮件时更新此号码)?

  3. 您是否会存储数据库中的字符总数(即2.中所有数字的总和?

  4. 您是否会存储将要显示的百分比(并相应地更新)?

1 个答案:

答案 0 :(得分:5)

我会专注于奖励优质内容的指标,而不仅仅是内容。 Stack Overflow就是一个很好的例子 - 当你的同伴重视你的内容时,你会获得奖励。

针对您的具体问题:

  1. 在每封邮件上添加列:content-length
  2. 在每个用户上添加一列:total-content-length
  3. 保存新邮件时,重新计算用户的总内容长度(所有message.content-length的总和)
  4. 此时基于百分比的表非常简单