Плагин для подсчета посещаемости страниц в Ruby on Rails
07 июля 2010
Я написал плагин для подсчета посещаемости избранных страниц Rails-приложения. Взять его можно на http://github.com/leonid-shevtsov/page_visit_tracker, там же посмотреть пример использования и краткую инструкцию.
Можно, конечно, делать это с помощью Google Analytics и вытягивать информацию оттуда, но, по-моему, это слишком сложное решение для такой простой задачи – потому-то и был написан этот плагин.
Я решил, что посещения надо привязывать к объектам модели. Поэтому
class PostsController def show # ... track_page_view(@post) end end
При этом создается новый объект PageView с данными о посещении. Повторные посещения тем же пользователем не учитываются. Посещения ботов тоже не учитываются.

по сути очень очень очень редко нужен именно такой узкий фунционал. там просмотр тем форума и т.п. но и там достаточно инкрементить счетчик, а не использовать плагин.
вообще такое решение нельзя применять при хоть сколько нибудь большой нагрузке по очевидным причинам.
теперь то что мне бросается в глаза.
page_view.rb часть с фильтер-мап-редюс. имена переменных не о чем не говорят. это плохая практика. нет комментариев.
запросы конечно очень простые, но это не дб-агностик. раз уж рельсы – сам понимаешь.
ну и вообще посылая разные юзер-эдженты можно плотно накрутить счетчик.
а так молодец.
hardcoded crawler_agents list is also a bad idea.