当前位置:  开发笔记 > 后端 > 正文

Rails 4计数器缓存不同步

如何解决《Rails4计数器缓存不同步》经验,为你挑选了1个好方法。

我有一个带有计数器缓存(设置为belongs_to :my_model, counter_cache: true)的Rails 4.2应用程序,它设置了不正确的值.我可以直接调用控制台并调用MyModel.associated_model_count并获取20,然后调用MyModel.associated_model.count并获取19.保存模型并不能解决这个问题.

这些价值似乎没有多少关闭,但有些肯定是关闭的,我无法弄清楚原因.



1> elements..:

要回答你的问题的一部分,并希望能帮助你在调试时,计数器列仅更新createdestroy,所以保存对象不会触发计数器更新.更多细节可以:counter_cache在选项下的条目下找到:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

您可以使用MyModel.reset_counters(id, *counters)(http://apidock.com/rails/ActiveRecord/CounterCache/reset_counters)手动触发计数器更新,如果您想要进入干净状态以确定它的位置.

相关问题以及有用的答案和讨论:Rails counter_cache未正确更新

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有