Ruby on rails 内容的页面视图数
我正在开发一个网站,在那里我需要跟踪特定内容(比如文章)的浏览量 这与stackoverflow对一个问题的观点非常相似 我不知道stackoverflow是怎么做到的。基本上应该这样Ruby on rails 内容的页面视图数,ruby-on-rails,analytics,Ruby On Rails,Analytics,我正在开发一个网站,在那里我需要跟踪特定内容(比如文章)的浏览量 这与stackoverflow对一个问题的观点非常相似 我不知道stackoverflow是怎么做到的。基本上应该这样 当文章作者以外的用户访问文章时,增加视图。如果他一直按刷新按钮,则不应增加视图 如果访问者连续点击刷新按钮,则不会增加视图。但对于第一次访问,视图应增加 我在数据库中有一个字段来保存许多视图 有人知道stackoverflow是怎么做的吗?rails中有我可以使用的插件吗?我想我应该使用会话和IP地址来跟踪。。。
帮助…我也不知道堆栈溢出是如何实现的,但我想您可以在更新视图计数时通过标识mac地址或当前用户id来确定它。这意味着当用户第一次查看页面时,计数将被更新,您可以跟踪mac地址。同样,如果出现相同的请求,您应该拒绝来自具有相同mac地址的系统的请求。根据您需要的准确性,您可能需要有一个表,其中包含用户已阅读哪篇文章的记录。他们的MAC地址没有随HTTP请求一起发送,他们的IP(v4)地址可能不够唯一 如果你想显示数据(像stackoverflow那样),你不能真正使用分析 将代码添加到控制器方法中以增加数据库字段比解析日志文件并连接到Rails之外的数据库更容易 伪ish代码(检查API的语法):
ArticlesController
你可以使用一个插件来实现这一点——我以前使用过一个插件来将事物标记为“read”,这可能是合适的(或者至少是适应性的)。阅读并点击谷歌。您无法使用HTTP协议读取用户的MAC地址。这需要一个外部插件。他应该只使用IP地址。为什么不在meta.stackoverflow.com上询问SO团队
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