我需要一个活动表来跟踪用户的各种活动,例如分析、社交功能(点击项目是投票)、安全性、调试等。
为了实现这一点,在我的带有设计 (2) 的 rails (3.2.3) 应用程序中,我想要一个表来存储当前登录用户在模型和控制器级别的所有活动。我的活动表有列 model、id、action(创建、读取、更新、销毁、获取)、actor(登录用户)和 ip(原始计算机的 IP 地址)。
设计解决方案的问题是由于 MVC 关注点分离。如果我使用观察者,我可以跟踪所有模型级别的活动,但无法获取当前用户或 ip。如果我使用应用程序过滤器,我可以获得用户和 ip 信息,但为了真正知道(例如)记录是否已保存,我必须在(例如)model.save 附近插入代码!在每个控制器的每个动作中调用。
实现这一点的最佳方法是什么?