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