在 Rails 应用实现用户行为统计
本文介绍如何用 ahoy/groupdate/chartkick 实现用户行为统计。
B 站视频
代码摘要
ahoy
https://github.com/ankane/ahoy
安装 Ruby 库:
gem "ahoy_matey"
bundle install
rails generate ahoy:install
rails db:migrate
配置 API:
# config/initializers/ahoy.rb
Ahoy.api = true
安装 JavaScript 库:
npm add ahoy.js
修改 app/javascript/applicatoin.js
:
import ahoy from "ahoy.js"
window.ahoy = ahoy
Ruby 收集:
ahoy.track "event_name", language: "Ruby"
JavaScript 收集:
ahoy.track("event_name", {language: "JavaScript"});
groupdate
https://github.com/ankane/groupdate
安装库:
gem "groupdate"
使用:
Ahoy::Event.where_props(account_id: @account.id).group_by_day(:time, last: 7).count
# {
# Wed, 01 Jan 2025 => 50,
# Thu, 02 Jan 2025 => 100,
# Fri, 03 Jan 2025 => 34
# ...
# }
chartkick
https://github.com/ankane/chartkick
安装 Ruby 库:
gem "chartkick"
安装 JavaScript 库:
npm add chartkick chart.js
修改 app/javascript/applicatoin.js
:
import "chartkick/chart.js"