如何在Rails中实现"top writer"表?

Mis*_*hko 1 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%
...
Run Code Online (Sandbox Code Playgroud)
  1. 您是否会在数据库中的每条消息中存储字符数(可能不包括标点符号)以及其他消息详细信息(并在编辑消息时更新它)?

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

  3. 你会存储数据库中的总字符数(即所有数字的总和2.

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

Jes*_*ott 5

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

针对您的具体问题:

  1. 在每个Message上添加列:content-length
  2. 在每个用户上添加一列:total-content-length
  3. 保存新邮件时,重新计算用户的总内容长度(所有message.content-length的总和)

此时基于百分比的表非常简单