2

我的 Rails 应用程序中有关注模型,当用户关注某些内容时 - 创建记录,取消关注 - 删除记录。

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

它将用于使用普通 SQL 构建一些报告 - 这就是为什么表应该具有类似的结构,即“影子”

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

https://github.com/rubiety/has_draft - 我无法选择具体的操作

https://github.com/bglusman/ruby-shadow-tables - 仅限原始和 mysql

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

4

3 回答 3

0

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

于 2013-03-11T10:21:41.797 回答
0

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

于 2013-02-19T13:13:51.690 回答
0

这已经相当老了,但如果其他人想做这样的事情,我和一个朋友做了一个脚本来使用 DB 触发器在 Rails 中设置影子表...... https://github.com/bglusman/ruby-shadow - 表

这有点笨拙,并且肯定会从被抽象成一个 gem 中受益,也许是一个 DB 中立的解决方案。

于 2014-11-11T22:23:33.627 回答