问题标签 [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 投票
2 回答
261 浏览

php - 在 cakephp 中 - 我可以反缓存相关模型吗?例如:用户 -> 个人资料

我的桌子member_count上有一个字段。countries

Profile属于Country

所以,当用户运行保存时$this->User->Profile->save( $this->data),我想更新counterCachein Country

可能的?

0 投票
0 回答
578 浏览

ruby-on-rails - Rails ActiveRecord :counter_cache 如果在创建之前没有设置关联,则不会更新。故意的?

我已经使用 :counter_cache => true 实现了 belongs_to 关系,我注意到如果在初始保存之前没有设置关系,计数器缓存不会得到更新。

例如,假设一家公司有很多员工。如果我做

计数器得到正确更新,但如果我这样做

计数器保持不变。

有关更多详细信息,请参阅以下型号:

这是一个 Rails 控制台会话,它演示了这一点:

文档确实说在创建/销毁对象时计数器会增加/减少,但我认为它也应该监视更新以使其有用。否则,比如说,在公司之间调动员工很快就会导致柜台完全关闭。

这是预期的行为吗?如果是这样,理由是什么?如果没有,我是不是做错了什么?我在 Rails 3.0.5 和 Ruby 1.9.2 中试过这个

谢谢!

0 投票
2 回答
1167 浏览

ruby-on-rails - 当计数列出现某些条件时如何在 Rails 中使用 counter_cache

我这里有一些代码

现在,我想为成员添加一个 counter_cache。由于条件模式,我不能在成员而不是成员上添加 counter_cache。但是类人不属于_组,它有_许多成员和成员属于_组。我应该在哪里添加 :counter_cache 架构?

或者我该如何实现要求:为会员添加一个 counter_cache

谢谢

0 投票
2 回答
1643 浏览

ruby-on-rails-3 - 跟踪关联中某些字段的总和 - “sum_cache”

我在模型中有带有 has_many 关联的表“订单”和“项目”。

Item 由“quantity”字段组成,Order 由“quantity_sum”字段组成,以跟踪相关项目数量的总和。

例如:

我一直在寻找一种方法,以便每当添加/编辑/删除新项目时,Order 的“quantity_sum”字段都会自动更新。目前我一直在 Item 中使用 after_save 方法来更新 Order 的 'quantity_sum' 字段。

除了'after_save'之外,还有其他巧妙的方法吗???

类似于用于跟踪关联计数的“counter_cache”,rails 是否支持自动跟踪关联中某些字段的总和?

谢谢

0 投票
2 回答
3824 浏览

ruby-on-rails - 带条件的 counter_cache

我知道我可以使用回调,但这应该是可行的。我做了长时间的搜索,没有结果。这是我认为会奏效的。

未按计划工作,因为您可以看到其更新的文档计数而不是发布的文档计数。

0 投票
1 回答
192 浏览

ruby-on-rails - 当我在 counter_cache 上订购时,它首先返回 nil 对象?

我的项目模型上有 owns_count counter_cache。当我做

,它返回我在其他结果之前为零的对象。如果我做

, 它是正确的。

我应该做什么?

0 投票
1 回答
824 浏览

ruby-on-rails - 在heroku上运行迁移的问题

这是这篇文章Rails, data structure and performance的后续 ,我尝试在 Rails 上创建 Counter Cache。为了不将其设置为默认值 0,我还添加了将列更新为数据库中现有的计数值。

在开发上运行 rake db:migrate 效果很好,即使它需要几个小时才能运行。

但是使用 heroku 运行迁移会给我以下错误:

我尝试了一些不同的东西,但此时似乎迷失了,任何帮助表示赞赏!奇怪的是,错误消息并不总是立即出现,有时就像迁移正在运行一样需要 10/20 分钟。

谢谢

更新:这是我的迁移文件的内容:

更新2:这适用于带有heroku的登台环境......但不适用于生产

经过一些修改,迁移代码现在是:

错误是:

0 投票
1 回答
363 浏览

ruby-on-rails - 如何在一个模型中触发多个 counter_cache 作为 has_many :通过

我有 3 个模型(Allen、Bob、Chris),它们与 Join 模型是多态的。和一个与连接模型连接的用户模型。

我的问题是如何在用户模型中为 Bob、Chris 和 Allen 编写计数器缓存

或者你可以在这里查看它:https ://gist.github.com/1350922

0 投票
2 回答
1502 浏览

ruby-on-rails - Rails 3 和 Rspec:计数器缓存列在预期 1 时更新为 2

我正在使用 Rspec 测试一个名为 Solutions 的模型,它有很多喜欢。解决方案存储它有多少喜欢(counter_cache)。它有一个“likes_count”属性(和相应的数据库字段)。

当我创建与解决方案关联的 Like 记录时,我希望解决方案属性“likes_count”应该从 nil 更新为 1。当我在控制台中执行此操作时,它可以工作。

但是当我运行规范时,在控制台中做同样的事情时,它会更新两次“likes_count”字段,将其设置为 2。

看看(在控制台中)工作

看看规范结果不工作

这是规格:

我查看了 test.log,我意识到更新计数器缓存列的 db 查询在测试中被调用了两次。

0 投票
1 回答
1666 浏览

ruby-on-rails-3 - 如何在 Rails 3 中缓存类似于 counter_cache 的计算属性?

我有一个属性,它是来自各种其他模型的基于计算值的数据。

我正在寻找一种巧妙的方法来缓存该值,类似于counter_cache但该值通过自定义函数自动更新。我已经在模型中有自定义功能。

如果修改了任何依赖数据,我需要调用此函数。有什么建议么?