大佬教程收集整理的这篇文章主要介绍了在 Paper Trail gem 的版本模型上添加 counter_cache 列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个配置了 PT 的 Page
模型。我还有一个 Versions::PageVersion
模型,因为页面版本存储在单独的表 (page_versions
) 中。 Page
模型有一个计数器缓存列,称为 page_versions_count
。到目前为止,一切都非常标准。
为了使计数器缓存工作,我覆盖了版本模型上的 belongs_to :item
关联,如下所示:
class Versions::PageVersion < PaperTrail::Version
belongs_to :item,polymorphic: true,counter_cache: true
end
这确实有效,但我现在想知道这样做是否正确。
PT 不提供配置 belongs_to :item
关联的方法。关联选项硬编码在 paper_Trail/version_concern.rb:18 中。
AFAICT,正如您所做的那样,重新定义关联是由 AR 支持的。新选项(包括 counter_cache
)替换(而不是合并)旧选项。我已经使用 ActiveRecord::reflection
实验性地确认了这一点,但找不到承认这一点的官方文档。
所以,你的解决方案是我能想到的最好的。
如果您想将您的解决方案贡献给文档,我很乐意查看 PR。我建议在“5.b. 配置版本关联”部分附近的某个地方。
以上是大佬教程为你收集整理的在 Paper Trail gem 的版本模型上添加 counter_cache 列全部内容,希望文章能够帮你解决在 Paper Trail gem 的版本模型上添加 counter_cache 列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。