问题标签 [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.
ruby-on-rails - 使用 counter_cache 列编写固定装置
编写具有 counter_cache 列的夹具既繁琐又复杂,我尝试在 test_helper.rb 中使用方法 reset_counters 但它不起作用。同样的方式让它工作?
ruby-on-rails - Mongoid 3.1.6 的未定义方法“reset_counters”
我刚刚将我的 mongoid 更新到了 3.1.6 版本,这样我就可以使用reset_counters方法来跟踪我的模型关系。但就像我在 gem 更新之前所做的那样,我仍然收到此错误:
在我的 Gemfile 我有这个版本:
并且 Gemfile.lock 状态:
这是应该更新计数器的模型:
这是计数器字段所在的模型:
ruby-on-rails - Rails:如何增加 counter_cache?
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::
::: 解决了 :::
能够找出 Vote 模型上的 counter_cache 并在主题中使用它。更新了下面的问题。一旦 Topic 模型有了 votes_count,我所要做的就是把它放在视图中并在控制器中更新我的计数。结果很简单。但是没有找到信息,所以这应该可以帮助其他人,在所有令人困惑的荣耀中。一路向下寻找答案。
干杯
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::
:::编辑:::
:::历史见下文:::
这是对原帖的修改。在我尝试宝石解决方案之前,我真的很接近我所拥有的。我在投票模型上使用了comment_cache ,但现在我不知道如何增加缓存。
并在视图中调用 topic.votes.size,它现在显示没有 Active Record 可枚举的计数。
index.html.erb
但是comment_cache 不允许负数。我仍在对记录使用创建/销毁,而不是在计数中添加和减去一个数字。如何增加和减少?这些方法说我缺少值。目前,@topic.votes.last.destroy 失败是有道理的,因为没有更多的投票可以销毁,因此总数不能小于零。
如何设置以便我增加/减少 comment_cache 值,以便可能出现负数?我尝试了@topic.votes.increment 和@topic.votes.increment_counter 但他们要求我不知道该使用什么的2 个参数。试过了
@topic.increment_counter(:votes_count, params[:id])
但没有运气。
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::
:::这条线以下的历史:::
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::
再次访问 Rails,我正在尝试对主题进行简单的投票计数器。我想要做的是增加/减少投票记录中的计数(整数)列。
主题 has_may :votes 和 Vote belongs_to :topic
在我用过的topics_controller.rb
但是我得到了一个有趣的 ActiveRecord 键,而不是视图中的值,而不是票数。
index.html.erb:
从Rails 控制台虽然增量没有显示:
我想我已经设置了routes.rb好的,但是我不确定双倍
无论如何,我认为这要么是错误的增量方法,要么是我缺少的东西。任何帮助表示赞赏。干杯
ruby-on-rails - Rails 4:has_many 中的 counter_cache :通过与依赖项关联::destroy
尽管已经提出了类似的问题:
他们都没有真正解决我的问题。
我有三个模型,带有一个 has_many :through 关联:
连接管理模型具有以下属性:
我想计算每个有多少calendars
,每个有user
多少。users
calendar
我打算使用 counter_cache 如下:
(当然,还有要添加:count_of_calendars
到users
表和表:count_of_users
中的相应迁移calendars
。)
但是后来,我在 Rails Guides 中偶然发现了这个警告:
4.1.2.4:依赖
如果将 :dependent 选项设置为:
- :destroy,当对象被销毁时,会在其关联对象上调用destroy。
- :delete,当对象被销毁时,其所有关联对象将直接从数据库中删除,而不调用它们的destroy方法。
您不应在与其他类上的 has_many 关联连接的 belongs_to 关联上指定此选项。这样做会导致数据库中出现孤立记录。
因此,计算每个人有多少以及calendars
每个人有多少是一个好的做法?user
users
calendar
cakephp - CakePHP 3:带有 BelongsToMany 的 CounterCache
我有一个BelongsToMany
关联,我的表PostsTable
是TagsTable
和PostsTagsTable
。
正如CakePHP book (associations) 中解释的那样,我有以下字段:
现在一切正常。所以,正如你所理解的,现在我想将tags.post_count
字段与CounterCache
.
我遵循了CakePHP 的书,但我想这是一个特例,实际上它并不能通过简单地将行为添加到PostsTable
.
你能帮助我吗?谢谢。
ruby-on-rails - 使用 counter_culture 更改同一查询中的多个计数器
我有以下课程,其中有几个针对同一关联的counter_culture计数器:
我遇到的问题是它使用几个查询执行更新:
有没有办法通过在单个查询中执行更新来更有效地使用counter_culture ?
ruby-on-rails - Rails 和乐观锁定:通过关联创建对象更改 DB 中的锁定版本,而不是 ruby 对象
我的项目有很多样板副本。
我有以下规格:
它失败:
我发现创建关联对象时,数据库中的 lock_version 字段已更新,但 ruby 对象无法识别这一点。因此,当添加 时project.reload
,规范通过:
这种行为是预期的吗?它与计数器缓存有关吗?
ruby-on-rails - Rails 4计数器缓存不同步
我有一个带有计数器缓存(设置为belongs_to :my_model, counter_cache: true
)的 Rails 4.2 应用程序,它设置了不正确的值。我可以直接调用控制台并调用MyModel.associated_model_count
并获取20
,然后调用MyModel.associated_model.count
并获取19
。保存模型并不能解决此问题。
这些值似乎并没有太大的偏差,但有些肯定是偏差的,我不知道为什么。
ruby-on-rails-4 - Rails 计数器缓存在同一模型上?
我有一个model
Task
,每个任务都有has_many
其他任务:
我可以将计数器缓存添加到每个任务具有的 sub_tasks 的数量吗?如何?