Class: C80NewsTz::BannersController
- Inherits:
-
ActionController::Base
- Object
- ActionController::Base
- C80NewsTz::BannersController
- Defined in:
- app/controllers/c80_news_tz/banners_controller.rb
Overview
считает клики по баннерам
Instance Method Summary collapse
-
#counter ⇒ Object
считает клики по баннерам.
Instance Method Details
#counter ⇒ Object
считает клики по баннерам
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/controllers/c80_news_tz/banners_controller.rb', line 7 def counter # TODO_MY:: реализовать защиту от накручивания, быстрых повторных кликов с того же ip, левых запросов # params[:c] = $ # где строка вида rb{(\d\d)}_{(\d+)}: # $1: часть имени класса баннера # $2: id баннера в базе s = params[:c] rex = /(?<=rb)(\d\d)_(\d+)/ result = s[rex] if result.present? # извлекаем данные class_part_name = result[$1] = result[$2] Rails.logger.debug("<BannersController.counter> class_part_name = #{class_part_name}, banner_id = #{}") # фиксируем баннер b = nil if class_part_name == '01' b = Banner01.find() elsif class_part_name == '02' b = Banner02.find() elsif class_part_name == '03' b = Banner03.find() end # увеличиваем счётчик на единицу if b.present? b.clicks += 1 b.save! end end end |