我最近开始研究Ruby on Rails,并且我已经设置了一个基本系统来扫描解析和XML数据源,并将这些元素存储在MySQL数据库中。
我打算以设定的时间间隔将脚本作为rake任务运行,因此要跟踪添加和更新,将新的或更改的值输出到文本文件。
我最初考虑使用before_save
将self.changes
写入文件,但是当我从两个不同的页面检索数据并想要对日志输出进行分组时,会出现复杂性例如,注意每个定价行是同一个表中的不同记录,忽略变量名称这些是示例。
Item GUID
- Price US: #{old price} to #{new price}
- Price UK: #{old price} to #{new price}
我目前要实施的解决方案是在表格中添加logged
列,如果数据发生变化,我可以将其设置为changed
,如果是new
记录已添加,并在查询中使用它来查找记录不为NULL的记录,并按GUID
对它们进行分组。但是,由于这将在保存对象后执行,因此我不了解过去的值。
我能采取不同的方法来实现这样的目标吗?
答案 0 :(得分:0)
是的,有更好的方法可以做到这一点。看看你有这些选择:
audited
gem:https://github.com/collectiveidea/audited paper_trail
gem:https://github.com/airblade/paper_trail espinita
gem:https://github.com/continuum/espinita