songtianlun
dd6cd0451d
- Integrate Ahoy gem for tracking user events and visits - Create models for Ahoy events and visits - Implement admin interfaces for managing events and visits - Add background job for cleaning up old analytics data - Update application controller and other relevant controllers to track specific actions This commit implements a comprehensive event tracking system that logs user interactions within the application. Additionally, it includes mechanisms for managing and cleaning historical visit and event data, ensuring efficient data handling.
34 lines
1.1 KiB
Ruby
34 lines
1.1 KiB
Ruby
# app/admin/ahoy_management.rb
|
||
ActiveAdmin.register_page "Ahoy Management" do
|
||
menu label: "访问数据管理", parent: "系统管理"
|
||
|
||
content title: "访问数据管理" do
|
||
columns do
|
||
column do
|
||
panel "数据统计" do
|
||
attributes_table_for :ahoy do
|
||
row("总事件数") { Ahoy::Event.count }
|
||
row("总访问数") { Ahoy::Visit.count }
|
||
row("最早事件") { Ahoy::Event.minimum(:time)&.strftime("%Y-%m-%d %H:%M:%S") }
|
||
row("最早访问") { Ahoy::Visit.minimum(:started_at)&.strftime("%Y-%m-%d %H:%M:%S") }
|
||
end
|
||
end
|
||
end
|
||
|
||
column do
|
||
panel "操作" do
|
||
div class: "buttons" do
|
||
button_to "立即清理旧数据", admin_ahoy_management_cleanup_path, method: :post,
|
||
data: { confirm: "确定要清理3个月前的数据吗?" },
|
||
class: "button"
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
page_action :cleanup, method: :post do
|
||
CleanAhoyDataWorker.perform_async
|
||
redirect_to admin_ahoy_management_path, notice: "清理任务已加入队列"
|
||
end
|
||
end |