我在我的rails应用程序中有Follow模型,当用户关注某些内容时 - 创建记录,取消关注 - 记录已删除。
我需要在单独的表中跟踪此更改(仅插入和删除)。
它将用于使用纯SQL构建一些报告 - 这就是为什么表应该具有类似的结构,也就是“阴影”
我不希望使用附加逻辑的polute原始模型 - 有一些解决方案,但它们不够灵活:
https://github.com/rubiety/has_draft - 我无法选择具体操作
https://github.com/bglusman/ruby-shadow-tables - 仅限raw和mysql
对于这种情况,有人知道一些好的解决方案吗?
答案 0 :(得分:0)
你可以再创建一个表shadow_follows并使用一个回调方法after_create和before_destroy将目标记录复制到新表中。
答案 1 :(得分:0)
我没有为这种情况找到任何合适的宝石,并决定用rails观察器实现它。没什么特别的..只是最简单的解决方案。
答案 2 :(得分:0)
这是相当陈旧的,但是如果其他人想要做这样的事情,我和朋友做了一个脚本来在带有数据库触发器的rails中设置影子表... https://github.com/bglusman/ruby-shadow-tables
它有点苛刻,绝对会受益于被抽象成宝石,也许是数据库中立的解决方案。