问题标签 [counter-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
498 浏览

ruby-on-rails - Rails counter_cache 的关联正在使用 update_attributes 进行更新;counter_cache 列未更新

我正在运行一个使用 counter_cache 列的 Rails 2.3.14 应用程序,类似于:

如果我直接将我的工作室分配给一个组,计数器缓存会更新得很好。

但是,如果我将 group_id 批量分配给车间,在传统的 Rails 控制器样式中,缓存不会更新。我认为这是 2.3.14 中的一个错误。

它也存在于旧版本中: http ://railsforum.com/viewtopic.php?id=34473

但是,发布者的“解决方案”引入了一个重复计算错误 - 如果您直接分配,您将获得默认的 rails updatercallback-one,但它确实适用于 update_attributes。

所以,我可以做几件事——我可以从 params 哈希中去掉 group_id 并直接分配它。或者我可以在我的 Workshop 模型上对 update_attributes 进行猴子补丁来为我执行此操作。

我想避免删除 params 哈希,因为这不直观且不自我记录,此外,任何可能调用 @workshop.update_attributes 的人都会遇到相同的错误。Monkey-patching update_attributes 似乎是最安全的,但也是完全错误的。

还有其他建议吗?

谢谢!

0 投票
1 回答
302 浏览

ruby-on-rails - counter_cache 没有增加......我做错了什么?

这看起来超级简单,让我的生活变得悲惨。导轨 3.1.3。

编辑:根据下面的建议将 t.integer "versions_count", :default => 0 添加到迁移中,回滚,重新创建数据库。现在versions_count保持在0。

安慰:

请帮忙,把我逼疯了。

编辑 2:删除关联记录时,计数器似乎减去了它的值。但它永远不会得到补充。

0 投票
1 回答
1388 浏览

ruby-on-rails - Rails :counter_cache 没有触发 after_update 回调

所以,我有一个 Folder 和一个 FolderItem 模型。

更新

我正在使用 counter_cache 来保留单个文件夹的数量。但是一个文件夹可能是另一个文件夹的父文件夹,我希望父文件夹具有所有子文件夹的 counter_cache 总和加上它自己的 counter_cache。

为此,我尝试将 after_update 方法缓存在 counter_cache 列中所做的更改,但不知何故,在创建新的 FolderItem 时不会调用此方法。

0 投票
1 回答
110 浏览

ruby-on-rails - _改变了吗?使用 counter_cache 时的方法

添加新评论时,我需要更新属性:average_rate。我有comments.rb

并在 page.rb

和 page.rb 中的 update_average_rate 方法

但它不起作用。当我在做

在 update_average_rate 方法中,它输出 "false" ,但 comments_count 已更改。我做错了什么?提前致谢

0 投票
2 回答
88 浏览

mysql - 如何优化 ORDER 条件以防止文件排序?

当我想在 MySQL 中按条件排序查询时,如何避免文件排序?

has_videos缓存布尔列和计数会更好吗?

0 投票
2 回答
579 浏览

ruby-on-rails - Rails counter_cache 平衡

目前我正在计算用户余额

我正在运行一个查询,减去添加所有用户存款并减去他们所有的购买。当有数千个事务时,这将无法很好地扩展。计算用户余额的最佳方法是什么?有没有办法自定义 counter_cache 来计算每个用户?

0 投票
1 回答
385 浏览

ruby-on-rails - Rails 计数器缓存不适用于生产

Rails 3.1.4(ruby 1.8.7)的计数器缓存机制有一个奇怪的问题。当我在开发服务器上运行我的应用程序时,一切正常。切换到生产环境之后,comments_count 列每次我只添加一条评论时都会增加 +2。

我查看了日志,增量查询在那里显示了两次:

我一整天都在努力解决这个问题,但我不知道出了什么问题。在开发模式下一切正常。从 Rails2 升级后出现问题。

0 投票
1 回答
641 浏览

cakephp - Cakephp hasAndBelongsToMany 与计数器缓存?

任何人都知道如何让countercache在HABTM设置上工作?

0 投票
2 回答
1965 浏览

ruby-on-rails - 关联关联的计数器缓存

我有一个论坛模型,其中有很多讨论。每个讨论都有很多帖子。讨论或多或少只是帖子对象的集合。

现在,我想在论坛中为该论坛讨论中包含的帖子提供一个 counter_cache。

所以真的,似乎我应该使用一个:through关联而不是两个单独的关联来完成这个。

但是,我找不到任何建议混合使用 has_many :through 和 has_one :through 关联的参考,仅适用于一对一和多对多,而不适用于一对多。

像上面那样可取,还是我应该手动处理计数器缓存?

0 投票
2 回答
3615 浏览

ruby-on-rails - :counter_cache => true 用于存储总和

我有桌子usersscores。以下是关联:

该表users具有名为 的列scores_count。在此列中,我存储表中所有值的总和scores

我想用这种方式将所有的总和存储scores在列中scores_count: :counter_cache => true

:counter_cache => true只保存表中的行数scores。有没有类似的方法来存储表中所有值的总和scores?还是我必须自己执行此任务?