2013-02-19 83 views
2

我有我的导轨应用程序跟随模型,当用户关注一些内容 - 创建记录,取消关注 - 记录删除。导轨阴影表模型

我需要跟踪单独表中的更改(仅插入和删除)。

它将用于建立与普通的SQL一些报道 - 这就是为什么表应该有类似的结构,又名“影子”

我不想用额外的逻辑polute原始模型 - 有一些解决方案,但他们做够不灵活:

https://github.com/rubiety/has_draft - 我不能选择具体操作

https://github.com/bglusman/ruby-shadow-tables - 原MySQL只

有没有人知道这种情况下的一些很好的解决方案?

+0

尝试https://github.com/airblade/paper_trail – jvnill 2013-02-19 13:02:24

+0

它序列数据,并把一切都以一个表格我需要单独的表 – Vladimir 2013-02-19 13:03:36

回答

0

您可以创建另一个表shadow_follows并使用after_create和before_destroy的回调方法将目标记录复制到新表中。

+0

是的,我想这就是左右,但它看起来像它可以委托给宝石 – Vladimir 2013-02-19 13:17:12

+0

的https功能:/ /rubygems.org/gems/audited gem在那里,但它不会创建表的副本;尽管你可以指定哪些表可以被审计。 – pravs 2013-02-19 13:21:29

0

我没有找到适合这种情况的任何合适的gem,并决定使用rails观察器来实现它。没什么特别的......只是最简单的解决方

0

这是相当老,但如果其他人想要做这样的事情,我和一个朋友做了一个脚本来建立与数据库触发器轨影子表... https://github.com/bglusman/ruby-shadow-tables

这是一个有点这些混沌,并且一定会从被抽象为宝石,也许是DB中立的解决方案中受益。