我有一个有很多相关模型的类问题。在我的应用程序的一个页面上,我列出了所有当前问题的摘要,以及来自相关记录的各种信息。最终,这是一个值的散列,然后我将其打印到 csv 样式的行中(我将从此将其称为“行散列”)
我现在要求只显示给定时间段内问题(或其相关数据)的变化。我目前正在考虑最好的方法来做到这一点。这是我到目前为止的一些想法,我欢迎任何反馈,想法,建议等。
1) 方法 1 -acts_as_audited 这是我的第一个想法,因为我之前在其他应用程序中使用过它。aaa 的问题是它只跟踪记录数据的变化(即它不关心关联是否发生变化)。所以,我也可以审计所有相关的记录,但是试图通过将不同的审计记录捆绑在一起来拼凑发生的变化听起来像是一场噩梦。
2)将新旧散列保存到序列化字段中:即 - 当有人进入问题/编辑页面时,我计算当前行散列并将其保存在问题表中的序列化字段“old_data”中。然后在他们保存问题后,我计算新的当前行哈希并将其保存到问题表中的序列化字段“new_data”中。此外,我比较了两个序列化哈希并将差异保存到另一个序列化哈希字段“更改”中。现在要做我的报告,我只是查找最近 x 天更新的问题并输出他们的更改数据。
3) 制作一个视图 - 我制作一个与我想要输出的数据相对应的视图(即合并我拉入报告中的所有数据)。然后我跟踪视图的变化 - 不知何故。我不确定我会怎么做。
我现在倾向于选项2。
还有其他想法/意见吗?感谢任何建议 - 最大。