количество просмотров страницы для контента - PullRequest
3 голосов
/ 25 ноября 2010

Я занимаюсь разработкой веб-сайта, на котором мне нужно отслеживать количество просмотров определенного контента (скажем, статей).

Очень похоже на представление stackoverflow для вопроса.

Я не знаю, как это делает stackoverflow. В основном это должно

  1. Увеличение представления, когда пользователь, кроме автора статьи, посещает статью. Если он продолжает нажимать кнопку обновления, это не должно увеличивать представление.
  2. Не увеличивать представление, если посетитель постоянно нажимает кнопку обновления. Но оно должно увеличиваться при первом посещении.

У меня есть поле в базе данных для хранения количества просмотров.

Кто-нибудь знает, как работает stackoverflow? Есть ли какой-нибудь плагин в рельсах, который я могу использовать? Я думаю, что я должен использовать сеансы и IP-адрес, чтобы отслеживать ... Должен ли я использовать журналы? ИЛИ Google Analytics?

помощь ...

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

В зависимости от того, насколько точным он вам нужен, вам, вероятно, понадобится таблица, содержащая записи, для которых пользователь прочитал какую статью. Их MAC-адрес не отправляется с их HTTP-запросом, и их IP-адрес (v4), вероятно, не уникален достаточно .

Если вы хотите отобразить данные (как это делает stackoverflow), вы не сможете использовать аналитику.

Будет проще добавить код в методы вашего контроллера для увеличения поля базы данных, чем анализировать файлы журналов и подключаться к базе данных за пределами Rails.

Псевдош-код (проверьте 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

Вы можете использовать плагин для этого - я использовал его раньше для пометки вещей как «прочитанных», которые, вероятно, подойдут (или, по крайней мере, будут адаптированы) Прочитайте этот вопрос и откройте Google.

0 голосов
/ 25 ноября 2010

Я также не знаю, как переполнение стека реализовало это, но я думаю, что вы можете решить это, определив MAC-адрес или текущий идентификатор пользователя при обновлении количества просмотров. Это означает, что когда пользователь впервые просматривает страницу, счетчик обновляется, и вы можете отслеживать MAC-адрес. И снова, если появится тот же запрос, вы должны отклонить его, если он поступил из системы с тем же mac-адресом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...