Rails 3 - increment_counter увеличивается в два раза - PullRequest
1 голос
/ 20 февраля 2012

Когда я запускаю эту строку кода

Movie.increment_counter :views, @moive.id

Таким образом, столбец views будет увеличен в два раза (+2, а не +1).В терминале я вижу этот запущенный запрос к базе данных:

UPDATE `movies` SET `views` = COALESCE(`views`, 0) + 1 WHERE `movies`.`id` = 8

Если я попытаюсь выполнить этот запрос непосредственно к MySQL, то значение views будет увеличено один раз правильно (+1).

Любые советы, что я пропустил или я не настроил?

1 Ответ

0 голосов
/ 18 марта 2013

Вы отслеживаете просмотры страниц случайно? Я столкнулся и с этим - при каждой загрузке страницы я видел бы приращение счетчика просмотров страницы на три, а не на 1, , но только при производстве .

Оказалось, что это код Google AdSense, загружающий страницу удаленно. Я заметил, что они попадают на страницу дважды каждый раз, когда один из моих пользователей попадает на страницу, что приводит к 3 просмотрам страницы. Я подозреваю, что они делают это, чтобы удостовериться, что контент на странице соответствует их правилам, и помочь соотнести рекламу с содержанием страницы. Проверьте ваши логи httpd на Mediapartners-Google. Могу поспорить, что это то, что происходит.

Общий совет: используйте Google Analytics (или аналогичный сервис) для отслеживания просмотров страниц. В моем случае мне все еще нужно было отслеживать это в БД, потому что я реализую автозаполнение на основе «популярности» определенных действий на странице, но вам это может не понадобиться.

...