内容的页面查看次数

时间:2010-11-25 20:08:13

标签: ruby-on-rails analytics

我正在开发一个网站,我需要跟踪特定内容的观看次数(比方说文章)。

它非常类似于stackoverflow对问题的看法。

我不知道stackoverflow是如何做到的。基本上它应该

  1. 当文章作者以外的用户访问文章时,增加视图。如果他一直按下刷新按钮,它就不应该增加视图。
  2. 如果访问者持续点击刷新按钮,则不会增加视图。但是第一次访问时它应该增加。
  3. 我在数据库中有一个字段来保存多少个视图。

    有人知道stackoverflow是怎么做到的吗?我可以使用rails中的插件吗?我想我应该使用会话和IP地址来跟踪...我应该使用日志吗?还是谷歌分析?

    帮助...

2 个答案:

答案 0 :(得分:1)

根据您需要的准确程度,您可能需要一个包含用户已阅读哪篇文章的记录的表格。他们的MAC地址不会随着他们的HTTP请求一起发送,他们的IP(v4)地址可能不是唯一足够的

如果要显示数据(如stackoverflow那样),则无法真正使用分析。

将代码添加到控制器方法以增加数据库字段比解析日志文件和挂接到Rails之外的数据库更容易。

Pseudo-ish代码(检查API的语法):

ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
    # Create an ArticleReading (your join table) for this user unless one already exists
    current_user.article_readings.find_or_create_by_article_id(@article)
    # Count the number of users that have read this article
    @article_readings = ArticleReading.count(@article.id)
  end
end

你可以使用一个插件 - 之前我用过一个标记为'read'的东西,这可能是合适的(或者至少是适应性的)。阅读this question,然后点击谷歌。

答案 1 :(得分:0)

我也不知道堆栈溢出是如何实现的,但我想你可以通过在更新视图计数时识别mac地址或当前用户ID来决定它。这意味着当第一次用户查看页面时,计数将更新,您可以跟踪mac地址。如果同样的请求出现,你应该拒绝,如果它是来自具有相同mac地址的系统。