Rails 4计数器缓存不同步

时间:2015-12-28 17:27:36

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord counter-cache

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

这些价​​值似乎并没有太大,但有些肯定是关闭的,我无法弄清楚原因。

1 个答案:

答案 0 :(得分:6)

要回答部分问题并希望帮助您进行调试,计数器列仅在SocialMediaPost.includes(:metrics).where.not('metrics. short_link' => nil) create上更新,因此保存对象不会触发计数器更新。更多详细信息可在此处的选项http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

下的destroy条目下找到

您可以使用:counter_cachehttp://apidock.com/rails/ActiveRecord/CounterCache/reset_counters)手动触发计数器更新,如果您想要进入干净状态以确定其中断的位置。

相关问题以及有用的答案和讨论:Rails counter_cache not updating correctly