`

counter_cache的使用

阅读更多
        有点惭愧,做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.
  
      
分享到:
评论

相关推荐

    custom_counter_cache:支持条件和多种模型的自定义counter_cache功能

    gem 'custom_counter_cache' 示例 带计数器缓存的类 这是将用于计算计数器缓存的值的块。 其他模型将通过after_save或after_destroy回调通过它们的关联来调用它。 include CustomCounterCache :: Model define_...

    counter_culture:Rails应用程序的涡轮增压计数器缓存

    反文化 Turbo为您的Rails应用程序提供计数器缓存。 对Rails标准计数器缓存的巨大改进...product.categories_count # =&gt; will use counter cache without query 安装 将counter_culture添加到您的Gemfile中: gem 'co

    Laravel开发-lara-counter-cache

    9. **Package Integration**: "lara-counter-cache-master"可能是一个第三方包,它提供了一套完整的解决方案,包括安装、配置和使用指南。安装这类包通常通过Composer完成,并在配置文件中进行相应的设置。 10. **...

    Laravel开发-counter-cache

    通过使用Counter Cache,可以显著减少数据库的负载,提升应用性能。 首先,我们来看如何在Laravel中实现Counter Cache。假设我们有一个`Post`模型,它有一对多的关系与`Comment`模型,即一个帖子可以有多个评论。...

    Laravel开发-lara-counter-cache .zip.zip

    3. 在Eloquent模型上定义计数器属性,例如`protected $counterCache = ['comments_count' =&gt; 'comments']`,这里的`comments_count`是模型上的字段,`comments`是关联关系的名称。 4. 配置缓存驱动,如在`config/...

    mongoid-magic-counter-cache:用于Mongoid ORM的简单计数器缓存宝石

    RDOC 安装Mongoid Magic Counter Cache至少需要ruby 1.9.3Ruby$ [sudo] gem install mongoid_magic_counter_cache宝石文件gem 'mongoid_magic_counter_cache'用法首先,将一个字段添加到文档中,您将从中访问计数器...

    Laravel开发-laravel-delayed-counter-cache

    1. **安装依赖**:如果`laravel-delayed-counter-cache`是一个外部库,我们需要通过Composer将其添加到项目中,执行`composer require vendor/package`命令。 2. **配置**:在`config/app.php`或`config/cache.php`...

    古董键盘题解1

    * 使用 `import` 语句导入模块,例如 `import math` 和 `from collections import Counter`。 * 使用 `from` 语句导入模块中的特定函数,例如 `from functools import lru_cache`。 * 使用 `@lru_cache(None)` 装饰...

    nginx-lua-counter.zip

    标题 "nginx-lua-counter.zip" 暗示了一个使用Nginx和Lua语言实现的计数器系统。这个系统可能是为了增强Nginx服务器的监控功能,帮助管理员追踪和分析服务器上的请求频率、访问量等关键指标。让我们深入探讨一下...

    2_1_Cassandra配置文件中相关配置项详解

    key_cache_size_in_mb键缓存的大小。Cassandra 使用键缓存来加速对主键的查找。row_cache_size_in_mb行缓存的大小。Cassandra 可以缓存某些行以加快访问速度,但请注意,行缓存可能导致高内存使用,因此在大型数据集...

    logisim全相联cache设计.txt

    根据提供的文件信息,我们可以推断出这是一份用于Logisim软件中的项目文件,主要涉及构建全相联缓存(cache)的设计。Logisim是一款强大的、免费的电路模拟软件,常被用来教学数字逻辑和计算机组织等课程。下面将详细...

    counter .net

    在.NET开发环境中,"Counter .NET"通常指的是一个用于跟踪和显示访问计数器的示例应用。这个应用可以帮助开发者创建一个简单的统计功能,记录页面或网站的访问次数。在这个场景下,`countcode`可能是包含实现计数...

    java非堆CodeCache详解

    要查看Java进程的默认CodeCache设置,可以使用以下命令: ```bash java -XX:ReservedCodeCacheSize=128m -version ``` 此命令将显示所有默认的XX参数值,其中包括CodeCache的设置。此外,还可以使用`-XX:+...

    C++基本功:全面掌握const、volatile和mutable关键字.docx

    在C++编程语言中,`const`、`volatile`和`mutable`是三个非常重要的关键字,它们用于控制变量、指针和引用的行为。本文将详细阐述这三个...理解并正确使用这三个关键字能帮助开发者编写出更加可靠和可维护的C++程序。

    计算机系统结构实验.doc

    在实验中, Cache 和主存的实现使用了结构体数组, CacheUpdate 结构体中包括 value、state 和 counter三个成员变量,分别表示 Cache 中的序列号、是否装入和计数器。table 数组用于保存整个 Cache 的更新情况,sort...

    Ruby-Mailboxer一个Rails的应用程序私人消息系统

    config.mailboxer_notification_counter_cache = true config.sender_email = "your_email@example.com" ``` 集成完成后,你需要在用户模型中包含`Mailboxer::Notificator`和`Mailboxer::Entity`模块: ```ruby ...

    Smarty中文手册 chm版

    $cache_modified_check [缓存修改检查变量] $config_overwrite [配置覆盖变量] $config_booleanize [配置布尔化变量] $config_read_hidden [配置读取隐藏变量] $config_fix_newlines [配置固定换行符变量] $...

    smarty手册.chm

    $cache_modified_check [缓存修改检查变量] $config_overwrite [配置覆盖变量] $config_booleanize [配置布尔化变量] $config_read_hidden [配置读取隐藏变量] $config_fix_newlines [配置固定换行符变量] $...

    asp.net使用xml的计数器

    对于高并发的网站,更推荐使用内存缓存(如`System.Web.Caching.Cache`)或数据库(如SQL Server)来存储计数器,以提高性能和数据一致性。 总之,"asp.net使用xml的计数器"是一个学习ASP.NET与XML交互的好例子,它...

    Linux内存描述符mm_struct实例详解

    10. `mm_counter_t` 类型的变量,如`_file_rss`、`_anon_rss`和`_swap_usage`,用于追踪内存使用情况,包括文件映射的驻留页面数、匿名映射的驻留页面数以及交换空间的使用。 11. `hiwater_rss` 和 `hiwater_vm`:...

Global site tag (gtag.js) - Google Analytics