用途:为任意 Rails 模型添加多态活动/审计时间线,并通过 Turbo Stream 实时更新。可追踪字段变更、状态流转、评论、附件等,支持按动作类型配置图标与颜色,并自动记录子模型生命周期事件。
主要能力:核心为多态 ActivityEvent 模型,含 trackable、subject、user 关联;内置通用动作集(created、updated、destroyed、field_updated、status_changed、comment_added、attachment_added/removed、assigned/unassigned、relationship_added/removed、tag_added/removed),可扩展领域动作。ActivityTrackable concern 让子模型自动在父级时间线记录事件。共享 partial 提供垂直时间线与 Turbo Stream 实时更新,DISPLAY 哈希按动作配置图标 SVG 路径与强调色。
使用方式:模型加 has_many :activity_events, as: :trackable;在 ActivityEvent#broadcast_partial 的 case 中加入新模型类型;视图渲染 shared/activity_timeline;用 ActivityEvent.create! 创建事件。子模型 include ActivityTrackable 并实现 activity_trackable、activity_action_created 等方法。查询用 .timeline、.by_type、.recent 等 scope。
适用场景:需要活动流、审计日志或实时动态的 Rails 应用。
限制:需 Rails 7+ 与 turbo-rails,配置 Action Cable 或 Solid Cable,默认样式依赖 Tailwind CSS;User 模型可选。新动作须同时加入 ACTIONS 与 DISPLAY,否则校验拒绝;新模型类型须加入广播路由,否则广播静默失败;时间线须用 .timeline scope 避免 N+1;turbo_stream_from 的流名须与广播方法一致(约定 "#{record_type}_{id}_activity")。AI 摘要为可选功能。