Đếm Lượt View Page Bằng Gem Impressionist - Viblo
Có thể bạn quan tâm
Bạn muốn đếm số lượt view 1 trang, 1 sản phẩm, hay thậm chí đếm số lượt thực hiện 1 action nào đó. Bạn có thể thực hiện 1 cách thủ công bằng cách +1 vào 1 trường quy định số view trong db, nhưng như vậy thì việc config sẽ gặp nhiều rắc rối. Để việc đó trở nên dễ dàng hơn, tôi sẽ giớ thiệu cho bạn 1 gem khá hữu ích cho việc này: gem impressionist
1.Cài đặtThêm vào Gemfile
gem "impressionist"Chạy lệnh Bundler
bundle installChạy lệnh generate
rails g impressionistChạy lệnh migration
rake db:migratethêm 1 cột trong bảng
rails g migration AddImpressionsCountToBook impressions_count:int 2.Cách dùng1.Ghi log tất các actions trong controller
WidgetsController < ApplicationController impressionist end2.Ghi log 1 action đặc biệt nào đó của controller
WidgetsController < ApplicationController impressionist actions: [:show,:index] end3 Chắc chắn trong model của bạn đã được thêm
class Widget < ActiveRecord::Base is_impressionable endSau khi thêm xong, giờ bạn có thể ghi log bất kì object nào của model với hành động tùy ý
def show @widget = Widget.find impressionist(@widget, "message...") # 2nd argument is optional end4 Lấy số lượng log đã ghi được
@widget.impressionist_count @widget.impressionist_count(start_date: "2011-01-01", end_date: "2011-01-05") @widget.impressionist_count(start_date: "2011-01-01") # end date = now @widget.impressionist_count(filter: :ip_address) #filter theo địa chỉ ip @widget.impressionist_count(filter: :params) #filter theo param đặc biệc nào đó @widget.impressionist_count(:ilter: :session_hash) #filter theo session đăng nhập của user
3. Nếu bạn muốn bản log được ghi lại không bị trùng lặp?Những phần trên ghi log lại đều có thể bị trùng lặp, vậy nên bạn có thể sử dụng 1 số config sau để tránh trùng lặp
Chỉ ghi log với những request không trùng type, id, session impressionist unique: [:impressionable_type, :impressionable_id, :session_hash]
Chỉ ghi log với những request không trùng controller, action, và session impressionist unique: [:controller_name, :action_name, :session_hash]
Hoặc đơn giản hơn là chỉ ghi log theo từng phiên làm việc impressionist unique: [:session_hash]
Chỉ ghi log với những request không trùng param impressionist :unique => [:params]
Bài viết mang tính giới thiệu, có điều gì sai sót mong bạn đọc bỏ qua
Từ khóa » đếm View
-
Top 15 đếm View
-
Thú Vị Video YouTube Tự đếm Số View Của Mình - TechTimes
-
Tự Code Chức Năng đếm Lượt Xem Và Top Bài Xem Nhiều - Thạch Phạm
-
Realtime YouTube Live View Counter
-
Tạo Bộ đếm Số Lượt Xem Bài Viết Trong WordPress - WP Căn Bản
-
Node Js - Vue Js | Chức Năng đếm View Toàn Trang - Bắt ... - Facebook
-
Đếm Lượt Xem Bài Viết Và Truy Vấn Hiển Thị Không Cần Plugin
-
Hướng Dẫn đếm Lượt Truy Cập Website Chính Xác Nhất 2020
-
Đếm View Của 1 Bài Viết | A Community Node.js
-
Count API | Elasticsearch Guide [8.3] | Elastic
-
Page View Count – WordPress Plugin
-
Cách Thêm Bộ đếm Lượt Truy Cập Từ Google Analytics Vào Trang Web ...
-
Newark Kids Count - Advocates For Children Of New Jersey
-
Built-in Types — Python 3.10.6 Documentation