Rails缓存列不会在destroy上更新 - Has_many通过

时间:2011-05-26 06:36:11

标签: ruby-on-rails ruby ruby-on-rails-3

我想计算属于konkurrancer的标签数量。 这是一个通过Tagsmenu关系的has_many。

我已将列konkurrancers_count添加到我的Tags表中。

这是我的加入模式:

class Tagsmenu < ActiveRecord::Base
  belongs_to :konkurrancer, :counter_cache => :true
  belongs_to :tag
end

但是当我摧毁一个konkurrancer时,konkurrancers_count列不会更新。

2 个答案:

答案 0 :(得分:1)

如果您delete记录它只运行删除sql。如果您destroy有记录,它将实例化模型,运行所有回调,然后然后运行删除sql。我想您会发现需要使用destroy才能看到缓存列更新。

答案 1 :(得分:0)

看看这个方法:update_counters