问题标签 [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 回答
357 浏览

ruby-on-rails - 缓存计数器列未保存重新计算的值

我弄乱了用户表中的计数器缓存列。我尝试重新计算它,但它没有保存值。

这不起作用:

甚至没有这个:

0 投票
2 回答
1462 浏览

ruby-on-rails - 如何持续增加计数器缓存列?

假设我有一个计数器缓存需要在每次页面加载时递增。假设我有 10 个 Web 实例。如何持续增加计数器缓存列?

使用一个 Web 实例即可轻松实现一致性。但是在运行多个实例时,可能会出现竞争条件。

这是一个快速的解释。假设我的计数器缓存列被调用foo_counts,其起始值为0。如果同时加载2个Web实例,则都实现计数为0。到了增加计数的时候。它们都将计数从 0 增加到 1。

我查看了http://guides.rubyonrails.org/active_record_querying.html#locking-records-for-update

任何想法将不胜感激。

0 投票
3 回答
1400 浏览

ruby-on-rails - Ruby on Rails——计数器缓存事务安全吗?

它会处理两个人更新问题吗?

我用谷歌搜索并查看了 api 但什么也没找到

Rails 3+,红宝石 1.9.3

0 投票
2 回答
4093 浏览

ruby-on-rails - counter_cache 列返回 0 的 Rspec 测试

几天来,我一直在努力找出应该很容易做到的接缝的底部……但是,我对 rails 和 ruby​​ 的世界还是很陌生,我只是无法解决这个问题。 .. :p

无论如何,我遇到的问题是我的模型中有许多 :counter_cache 列,在手动测试它们时它们都工作得很好。但是,我想做 TDD 的事情,但由于某种未知原因,我无法在 rspec 中测试它们?

无论如何,这是我的模型(用户、评论和媒体)的一个例子:

以下是表模式设置的示例:

现在这是我尝试过的 rspec 示例的示例:

最后是 rspec 给我的错误信息:

另请注意,这发生在我所有模型中的所有 counter_cache 列中。我也尝试了许多不同的测试方法,但它们都返回了上述错误消息。

真的希望有人可以帮助我解决这个问题。:)

提前致谢!卢克

更新:这会以同样的方式影响 counter_culture,下面的解决方案也解决了 counter_culture 的问题。

0 投票
1 回答
1504 浏览

php - Cakephp counterCache 多个 counterScope - 逻辑问题

问题:

我有两个模型:经销商,Testdrive(Testdrive 通过dealer_id 属于经销商)。我想显示有关经销商的实时统计信息:总计 (Testdrive.active = 1)、已处理 (Testdrive.active = 1 && Testdrive.processed = 1) ...

我有大约 100 名经销商和 10000 次试驾。基于计数的 sql 大约需要 10 秒(效率低)。现在我有一个每小时运行一次的 cronjob,但我没有实时统计数据。

我试过这样的事情:

...但我覆盖了 belongsTo => 'Dealear' 值。

我可以拥有一个带有 counterScope 数组的 counterCache 数组吗?

0 投票
1 回答
630 浏览

ruby-on-rails - 如何确保在 rails 单元测试中正确更新 counter_cache?

我已经counter_cache为我的 Rails 3.2.6 模型进行了正常设置。它在 webapp 中完美运行,但在单元测试中失败。

以下片段说明了手头的问题:

请注意,我在不使用 FactoryGirl 的情况下尝试了相同的操作,但仍然失败。

如何确保在单元测试中正确更新 counter_cache?

0 投票
2 回答
2146 浏览

ruby-on-rails - 如何将计数器缓存值设置为给定值?

我正在使用 Ruby on Rails 3.2.2,我想将计数器缓存值设置为“自定义”值。也就是说,此时(在我的迁移文件中)我正在尝试使用以下代码:

换句话说,我想将:comments_count(计数器缓存数据库表列)设置为自定义值(在我的情况下,该值是article.custom_comments.count-注意:这custom_comments不是 ActiveRecord 关联,而是Article模型类中声明的方法;它返回一个整数值),与关联无关has_many

也许,我可以/应该使用类似的东西

但似乎该方法没有关联reset_counters就无法工作。has_many

如何将:comments_count计数器缓存值设置为与“自定义关联”相关的给定值?

0 投票
1 回答
315 浏览

cakephp - 如何使用 counterCache() 来跟踪 CakePHP 的视图计数?

每次用户查看提交时,我都会跟踪计数并将其绑定到会话:

提交控制器:

我在 SubmissionsViews 表中跟踪它们。

提交视图模型:

我的 SubmissionsView 表submissions_views具有以下字段:

  • ID
  • 提交ID
  • 用户IP
  • 创建

我正在尝试设置 counterCache 以跟踪该表的添加,但不知道如何设置它。我目前$belongsTo在我的提交模型中添加 counterCache:

但它告诉我它找不到Submission.submissions_views_id。在文档中,它只是说我需要在我的submissions表中添加一个名为的字段submissions_views_count,所以我很困惑如何让它工作?

0 投票
2 回答
444 浏览

ruby-on-rails - 保存后,counter_cache 未在模型上更新

我正在使用 acounter_cache让 MySQL 为我做一些簿记:

现在,如果我这样做:

INSERT在 SQL 日志中,后面会有类似的内容:

这是我期望它做的。然而,这container[:items_count]将是陈旧的!

...除非我container.reload拿起更新的价值。在我看来,这有点违背了使用 :counter_cache 来支持自定义构建的部分目的,特别是因为reload在我尝试访问该items_count属性之前我可能实际上并不想要一个。(由于域逻辑的性质,我的模型代码量很大,所以有时我必须在一个控制器调用中保存和创建多个东西。)

我知道我可以自己修改回调,但在我看来,这似乎是对简单功能的一个相当基本的期望。同样,如果我必须编写额外的代码以使其完全工作,那么实现自定义计数器可能会更容易。

我在做什么/假设错了?

0 投票
1 回答
640 浏览

ruby-on-rails - 如何检查计数器缓存是否正常工作?

我已经完成了 Railscast 上所说的一切(http://railscasts.com/episodes/23-counter-cache-column)。

我已经完成了这些设置

  • 迁移以将新列“comments_count”添加到“community_topics”表,该表是父表。

  • 我在 models/comment.rb 中添加了counter_cache: true(现在就像这样 belongs_to :commentable, :polymorphic => true, counter_cache: true

我认为这是

<%= community_topic.comment_threads.size %>

如你所知,我看不出它的外观有什么不同。
我怎么知道计数器缓存现在是否正常工作?