我正在使用gem paper_trail
来跟踪版本。我想知道,有没有办法从它被包含的模型中创建某种活动新闻?例如,我已将其添加到模型评论,用户和文章中。我希望获得这些模型的最新变化列表,并创建类似活动的新闻:
用户A创建了一个新类别
用户B编辑了文章
admin已添加新文章
等
有可能吗?如何?似乎是的,但究竟是怎么回事?请注意,我不想从我包含gem的所有模型中检索那种信息,但只能从我想要的模型中检索。
答案 0 :(得分:0)
由于用户需要它,您应该集成https://github.com/ankit1910/paper_trail-globalid以链接whodunnit部分。
PaperTrail::Version.where_object(attr1: val1, attr2: val2)
注意:
paper_trail
gem用于审核。 不要忘记检查数据库上的indexes
,因为关系数据库会因为你的数据而变慢。指数增加。
根据我对[spree][1]
框架和类似gem的经验,versions
表是我们最大的表,并且它快速变得安静。您可能在维护此表时遇到类似的挑战,添加索引可能会导致其速度变慢。
我的建议是使用类似Redis的商店来维护每个用户最近10次更新的列表,可以通知用户而不是查询MySQL(基本上是缓存)