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

ruby-on-rails - 范围的计数器缓存

我之前在我的应用程序中设置了一些 counter_caches,但仅用于简单的 belongs_to 关系。

我正在做很多查询,例如

我的集合模型中的范围在哪里

我可以设置一个 counter_cache 来计算标记为“got”的 user.collections 的数量吗?我看到的问题是 counter_cache 仅使用创建或销毁而不是更新操作进行更新。有什么好的方法吗?

0 投票
3 回答
1414 浏览

ruby-on-rails - 在使用偏执狂恢复记录后更​​新计数器缓存列 (acts_as_paranoid)

我的模型中有一个counter_cache专栏。我acts_as_paranoid用于这个模型(偏执狂宝石)。恢复记录时如何更新关联记录的计数器缓存列?

0 投票
1 回答
19 浏览

ruby-on-rails - 除了关联中的对象数量之外,是否可以使用 counter_cache 跟踪其他内容?

我所要做的就是以一种简单/轻松的方式......每当PostsController#Show触发动作时,增加post.viewsorpost.view_count列。我不想做太重的事情。

感觉本机counter_cache将是完美的……但那是专门针对关联对象计数的。

无论如何,我可以重新使用它吗?或者以我想要的方式使用基础概念?

0 投票
1 回答
1016 浏览

ruby-on-rails - Rails 4.1 计数器缓存未更新

这个计数器缓存似乎没有正常工作,尽管据我所知,我所做的一切都是正确的。

用户.rb:

移民:

为什么这不更新计数器?

0 投票
1 回答
276 浏览

ruby-on-rails-4 - counter_culture 和中深度关联的 column_names

在 counter_culture 方法中定义 column_names 时,是否可以进行深度关联?在文档和示例中,它始终是属于用于确定 column_names 的模型的属性。但是,如果属性属于关联模型怎么办?

例如,这有效

相关例子

如果,对于上述情况,你可以(你不能)在 column_names 方法中使用连接,它看起来像这样

第二个例子说明了我的问题。当需要评估的属性不属于父模型,而是关联模型时,如何定义 column_names?

0 投票
0 回答
57 浏览

ruby-on-rails - 从worker创建新值时计数器缓存在rails中不起作用

我有一个 Rails 应用程序,我想在其中使用计数器缓存,在实施到应用程序之前,我尝试在示例应用程序中检查它是如何工作的,并且效果很好。但我不能让它在我需要做的应用程序中工作。

两个应用程序的不同之处在于 create 是从与 counter_cache 一起使用的应用程序中的控制器调用的,而 create 是从应用程序上的工作人员调用的,而该应用程序不起作用。

那么我们是否需要仅从控制器创建记录才能使其正常工作,还是会出现其他错误?

请帮我。提前致谢。

代码示例

在我的评论控制器中,我有

在我看来,我有

上面的代码有效,而

在称为异步的 sidekiq 工作者中不起作用,即不会增加表中的计数。

0 投票
2 回答
110 浏览

ruby-on-rails - 我应该使用类或实例方法来增加我的对象吗?

在 Rails 中有两种方法可以增加属性:

实例级:http ://apidock.com/rails/ActiveRecord/Base/increment !
类级:http ://apidock.com/rails/ActiveRecord/Base/increment_counter/class

我想更新我的帖子模型上的计数器属性,以保存帖子的评论数。

两者中的任何一个更适合我的用例吗?

我会将它与 PostgreSQL 数据库一起使用。

0 投票
1 回答
562 浏览

php - CakePHP counterCache in belongsTo (HABTM)

我有以下模型结构。

邮政

id、标题、文本等

标签

id,名称,posts_count,创建

标签帖子

id、tag_id、post_id、创建

标签型号:

岗位型号:

标签邮政模型:

为什么 TagsPost 模型的 belongsTo 中的 counterCache 不起作用?如果发布了带有相关标签的帖子,我想增加标签模型中的posts_count,如果帖子被删除,我想减少。

0 投票
0 回答
488 浏览

ruby-on-rails - 使用 counter_culture,无法使条件计数器缓存工作

我似乎无法让 counter_culture 与条件计数器缓存一起使用。它与普通的计数器缓存完美配合。证书按预期批准和不批准增量和减量。

所以在我的数据库中,对于 Packet,slip_count 可以通过 packet.slips.size 工作,但我无法弄清楚如何获得有条件的approved_count。我正进入(状态:

对于我尝试引用的每种方式,即 packet.slips.approved.size

包 滑 证书
0 投票
1 回答
126 浏览

ruby-on-rails - 如何仅使用过去 30 天的数据通过 counter_cache 订购

我正在尝试按观看次数对节目列表进行排名。

现在,我有一个 Program 模型和一个属于该程序的 Views 模型。

在 Views.rb 我创建了一个 counter_cache:

我可以使用 .views_count 对程序进行排序。然而,views_count 一直在更新,所以一个节目在 2 年前观看了 200 次,而今年根本没有观看,其排名将高于过去一个月观看 30 次的节目。

我希望能够指定在计算 views_count 时我只想考虑过去 30 天内发生的视图。

我尝试创建一个程序模型方法 recent_views 并在控制器中使用 sort_by ,但是它花费的时间太长并且经常超时。现在,我正在将 views_count 用于最近更新的程序,但这并不能解决这个问题。

在模型中是否有一种简单的方法可以做到这一点?

有没有办法创建一个单独的 counter_cache 只包括过去 30 天?