我需要通过关联监视活动记录级别的用户更改。此更改应显示在类似页面的流上。由于每个用户对我的应用程序的不同区域都有不同的权限,因此审计流必须限于其权限。
我知道Paper trail(不适用于所有类型的关系:(),Vestal版本,acts_as_audit等等,但不知道在我的情况下使用这个宝石的最佳做法是什么。
审核AR更改的最佳做法是什么,包括在具有不同用户权限的活动流中显示关联和显示?
答案 0 :(得分:1)
Rails通过Observer提供了一种审核AR活动的简单方法。
Observer允许在Models上添加回调函数。然后,您可以更新 Acitivty 模型,以便查看已更改的内容。请注意,Observer独立于Controller。什么或谁改变你的模型应该通过你的观察者。缺点是它可能会降低您的应用程序速度。
更有效但也更复杂的方法是使用EventMachine。有关它的介绍,请参阅this article。
EventMachine和Observer之间的方法可以是delayed jobs与Observers一起使用。如果你必须在审计时计算某些东西,它可以让你这样做而不会像睡觉的乌龟那样减慢你的应用程序。关于延迟工作有一些很好的提示here。