首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数器缓存在更新后不工作

计数器缓存在更新后不工作
EN

Stack Overflow用户
提问于 2011-02-28 08:20:58
回答 2查看 980关注 0票数 1

页面模型

代码语言:javascript
复制
has_many :categorization
has_many :categories, :through => :categorization

类别模型

代码语言:javascript
复制
has_many :categorization
has_many :pages, :through => :categorization

分类模型

代码语言:javascript
复制
belongs_to :page
belongs_to :category, :counter_cache => :pages_count

当我编辑页面和更改页面类别时,它不会更新pages_count。是我漏掉了什么,还是这很正常?我怎么才能让它工作呢?

更新:

我在categories表上有pages_count列,计数器缓存在创建和销毁后工作。

EN

回答 2

Stack Overflow用户

发布于 2011-02-28 19:51:51

我找到了解决方案。此问题已在Rails 3.1.0.beta中修复。也许它能帮助其他有同样问题的人。我花了4个小时才弄清楚。Commit is here

票数 3
EN

Stack Overflow用户

发布于 2011-02-28 08:25:54

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

根据文档,您需要在页表中添加一个列,比如#{table_name}_count

运行新的迁移:

代码语言:javascript
复制
script/generate migration add_category_count_to_pages

然后添加以下内容进行迁移:

代码语言:javascript
复制
add_column :pages, :categories_count, :integer

然后是rake db:migrate

这应该会解决这个问题。

更新

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

categorization.rb型号:

代码语言:javascript
复制
belongs_to :page, :counter_cache => :pages_count
belongs_to :category
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5137076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档