2011-02-28 76 views
1

页模式不工作后计数器缓存更新

has_many :categorization 
has_many :categories, :through => :categorization 

分类模型

has_many :categorization 
has_many :pages, :through => :categorization 

分类模型

belongs_to :page 
belongs_to :category, :counter_cache => :pages_count 

当我编辑页面,更改页面的类别,这不是” t更新pages_count。我错过了什么或这是正常的?我怎样才能使它工作?

更新:

我有类别表,计数器缓存后的工作创建和销毁PAGES_COUNT列。

回答

0

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

根据你需要的列页表中添加,如#{table_name}_count的文档。

运行新的迁移:

script/generate migration add_category_count_to_pages 

然后添加此进行迁移:

add_column :pages, :categories_count, :integer 

然后rake db:migrate

,并应照顾它。

更新

计数器缓存需要放置在关联表:

categorization.rb型号:

belongs_to :page, :counter_cache => :pages_count 
belongs_to :category 
+0

不,先生,我有所有的表设置。计数器缓存在创建或销毁后正在工作。 – m80 2011-02-28 00:26:56

+1

它看起来像你需要把它放在相关的类,所以在后,而不是类别。 – s84 2011-02-28 00:33:33

+0

不,我需要知道哪个标签有多少页。 – m80 2011-02-28 00:37:01

3

我找到了解决办法。这个问题在Rails 3.1.0.beta中修复。也许它可以帮助其他有相同问题的人。我花了4个小时才知道。 Commit is here