В зависимости от того, насколько точным он вам нужен, вам, вероятно, понадобится таблица, содержащая записи, для которых пользователь прочитал какую статью. Их 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.