有点惭愧,做rails也2年了,竟然不会用counter_cache,刚才google了counter_cache,感觉这个还挺有用的,举个例子,在sina微博中,微博的评论数和收藏数就可以使用到counter_cache,使用了counter_cache,我们就不需要在数据库中查找该博客下的所有评论,然后再计算评论数了,举个具体的例子吧.
class Blog < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :blog, :counter_cache => true
end
注意: blogs中有一个字段是comments_count(整型),当添加和删除comment的时候,会在它所对应的blogs中的comments_count加或减1,这里需要注意的是destroy和destroy_all,可以触发blogs中的comments_count加或减1,而delete和delete_all则不会。
此外如果要指定特定的名字的话呢,就 :counter_cache => :pinlun_counts,这样在blogs中就使用pinlun_counts,而不是comments_count.
class Blog < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :blog, :counter_cache => true
end
注意: blogs中有一个字段是comments_count(整型),当添加和删除comment的时候,会在它所对应的blogs中的comments_count加或减1,这里需要注意的是destroy和destroy_all,可以触发blogs中的comments_count加或减1,而delete和delete_all则不会。
此外如果要指定特定的名字的话呢,就 :counter_cache => :pinlun_counts,这样在blogs中就使用pinlun_counts,而不是comments_count.
发表评论
-
rails console 记录命令历史
2020-03-20 10:53 3691: 打开文件: vim ~/.irbrc,添加如下内容: ... -
mysql dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
2019-12-16 16:43 451今天一连串的神操作导致连接mysql一直报错,dyld: Li ... -
ruby gsub和sub 的特殊使用
2019-04-04 19:53 1064gsub和sub使用 常用的使 ... -
rails离线环境搭建相关命令
2018-12-17 09:35 4711:下载yum包: 环境搭建需要安装很多包,可以使用 yumd ... -
rails离线环境搭建相关命令
2018-12-17 09:35 4981:下载yum包: 环境搭建需要安装很多包,可以使用 yumd ... -
rails5 belongs_to 默认不能为空,报错must exist
2017-04-29 16:37 4891: 在config/application.rb设置 con ... -
随笔知识
2014-08-07 21:11 1837show-source: 查看方法在文件中的位置,show-s ... -
rails 中 group 按照一定的规则返回数据
2012-11-03 19:20 974has_many :user_resumes, class_n ... -
项目 经验
2012-10-10 15:53 01: user = User.first; user. ... -
数组使用will_paginate
2012-03-30 11:58 1442有的时候,在开发的过程中需要对模型数组进行分页,此时我们可以如 ... -
我的rails 编程规范
2012-01-16 15:19 9101: 属性中时间要已at结尾,例如created_at, ... -
html_safe
2012-01-12 13:56 1441html_safe: 可以保证(> < &am ... -
同时分页查找没有关联关系的多个表
2011-12-30 14:41 1294supplyinfos和seekinginfos两个表 需求: ... -
send_file ie下文件名乱码问题解决
2011-10-28 17:50 2484使用rails的send_file 实现下载功能时,type指 ... -
has_many 关联关系表单 提交
2011-04-18 17:16 1163class Author has_many :books ... -
belongs_to 多级关联关系
2011-04-12 14:18 1138有一种情况,是这样的c属于b,b属于a,但是我们有时候想建立c ... -
rails 根据异常显示特定的错误页面
2011-03-27 20:50 1181rescue_from 异常, :with => :a ... -
rails 笔记
2011-03-27 20:49 1752启动项目: ruby script/se ... -
rails 发送电子邮件(ActionMailer)
2011-03-27 20:49 36401: 复制以下配置邮件 ... -
rails 读写分离
2011-03-27 20:48 2041开发环境下实现rails的 ...
相关推荐
gem 'custom_counter_cache' 示例 带计数器缓存的类 这是将用于计算计数器缓存的值的块。 其他模型将通过after_save或after_destroy回调通过它们的关联来调用它。 include CustomCounterCache :: Model define_...
反文化 Turbo为您的Rails应用程序提供计数器缓存。 对Rails标准计数器缓存的巨大改进...product.categories_count # => will use counter cache without query 安装 将counter_culture添加到您的Gemfile中: gem 'co
9. **Package Integration**: "lara-counter-cache-master"可能是一个第三方包,它提供了一套完整的解决方案,包括安装、配置和使用指南。安装这类包通常通过Composer完成,并在配置文件中进行相应的设置。 10. **...
通过使用Counter Cache,可以显著减少数据库的负载,提升应用性能。 首先,我们来看如何在Laravel中实现Counter Cache。假设我们有一个`Post`模型,它有一对多的关系与`Comment`模型,即一个帖子可以有多个评论。...
3. 在Eloquent模型上定义计数器属性,例如`protected $counterCache = ['comments_count' => 'comments']`,这里的`comments_count`是模型上的字段,`comments`是关联关系的名称。 4. 配置缓存驱动,如在`config/...
RDOC 安装Mongoid Magic Counter Cache至少需要ruby 1.9.3Ruby$ [sudo] gem install mongoid_magic_counter_cache宝石文件gem 'mongoid_magic_counter_cache'用法首先,将一个字段添加到文档中,您将从中访问计数器...
1. **安装依赖**:如果`laravel-delayed-counter-cache`是一个外部库,我们需要通过Composer将其添加到项目中,执行`composer require vendor/package`命令。 2. **配置**:在`config/app.php`或`config/cache.php`...
* 使用 `import` 语句导入模块,例如 `import math` 和 `from collections import Counter`。 * 使用 `from` 语句导入模块中的特定函数,例如 `from functools import lru_cache`。 * 使用 `@lru_cache(None)` 装饰...
标题 "nginx-lua-counter.zip" 暗示了一个使用Nginx和Lua语言实现的计数器系统。这个系统可能是为了增强Nginx服务器的监控功能,帮助管理员追踪和分析服务器上的请求频率、访问量等关键指标。让我们深入探讨一下...
key_cache_size_in_mb键缓存的大小。Cassandra 使用键缓存来加速对主键的查找。row_cache_size_in_mb行缓存的大小。Cassandra 可以缓存某些行以加快访问速度,但请注意,行缓存可能导致高内存使用,因此在大型数据集...
根据提供的文件信息,我们可以推断出这是一份用于Logisim软件中的项目文件,主要涉及构建全相联缓存(cache)的设计。Logisim是一款强大的、免费的电路模拟软件,常被用来教学数字逻辑和计算机组织等课程。下面将详细...
在.NET开发环境中,"Counter .NET"通常指的是一个用于跟踪和显示访问计数器的示例应用。这个应用可以帮助开发者创建一个简单的统计功能,记录页面或网站的访问次数。在这个场景下,`countcode`可能是包含实现计数...
要查看Java进程的默认CodeCache设置,可以使用以下命令: ```bash java -XX:ReservedCodeCacheSize=128m -version ``` 此命令将显示所有默认的XX参数值,其中包括CodeCache的设置。此外,还可以使用`-XX:+...
在C++编程语言中,`const`、`volatile`和`mutable`是三个非常重要的关键字,它们用于控制变量、指针和引用的行为。本文将详细阐述这三个...理解并正确使用这三个关键字能帮助开发者编写出更加可靠和可维护的C++程序。
在实验中, Cache 和主存的实现使用了结构体数组, CacheUpdate 结构体中包括 value、state 和 counter三个成员变量,分别表示 Cache 中的序列号、是否装入和计数器。table 数组用于保存整个 Cache 的更新情况,sort...
config.mailboxer_notification_counter_cache = true config.sender_email = "your_email@example.com" ``` 集成完成后,你需要在用户模型中包含`Mailboxer::Notificator`和`Mailboxer::Entity`模块: ```ruby ...
$cache_modified_check [缓存修改检查变量] $config_overwrite [配置覆盖变量] $config_booleanize [配置布尔化变量] $config_read_hidden [配置读取隐藏变量] $config_fix_newlines [配置固定换行符变量] $...
$cache_modified_check [缓存修改检查变量] $config_overwrite [配置覆盖变量] $config_booleanize [配置布尔化变量] $config_read_hidden [配置读取隐藏变量] $config_fix_newlines [配置固定换行符变量] $...
对于高并发的网站,更推荐使用内存缓存(如`System.Web.Caching.Cache`)或数据库(如SQL Server)来存储计数器,以提高性能和数据一致性。 总之,"asp.net使用xml的计数器"是一个学习ASP.NET与XML交互的好例子,它...
10. `mm_counter_t` 类型的变量,如`_file_rss`、`_anon_rss`和`_swap_usage`,用于追踪内存使用情况,包括文件映射的驻留页面数、匿名映射的驻留页面数以及交换空间的使用。 11. `hiwater_rss` 和 `hiwater_vm`:...