2013-02-19 138 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中立的解決方案中受益。