`
wangxb_st
  • 浏览: 4938 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

counter_cache失效一例

阅读更多
counter_cache的问题
counter_cache在模型上控制计数器的变化,因此当模型发生new和delete时候触发,但对于依赖模型使用的

class Topic < ActiveRecord::Base
  has_many :posts, :dependent => :delete_all
end


由于删除topic时,生成的SQL语句如下:

DELETE FROM `topics` WHERE `id` = 13
DELETE FROM `posts` WHERE (topic_id = 13)


没有触发counter_cache,导致counter_cache计算错误。


解决的办法:

1、不使用counter_cache
2、使用
class Topic < ActiveRecord::Base
  has_many :posts, :dependent => :destroy
end


目前我使用的是后者。
分享到:
评论
5 楼 wangxb_st 2009-08-03  
saberma 写道
我记得<<Agile Web Development with Rails>>就有讲到的
楼主没看过?


呵呵,我读书太少,汗颜。
4 楼 rainlife 2009-08-02  
http://rainlife.iteye.com/blog/417980
3 楼 saberma 2009-07-31  
我记得<<Agile Web Development with Rails>>就有讲到的
楼主没看过?
2 楼 koalant 2009-07-27  
在 rails 中, delete 和 destroy 是有区别的,后者触发钩子方法,前者就是 sql delete。 把 :delete_all 换成 :destroy_all 试一下。
1 楼 花花公子 2009-07-27  
使用数据库的trigger无疑是最有效的方法

相关推荐

    VHDL例程源码 counter_n

    VHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_nVHDL例程源码 counter_...

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

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

    视频中工程代码 class5_counter_ip

    视频中工程代码 class5_counter_ip视频中工程代码 class5_counter_ip视频中工程代码 class5_counter_ip视频中工程代码 class5_counter_ip视频中工程代码 class5_counter_ip视频中工程代码 class5_counter_ip视频中...

    counter_99.rar_counter_guide99.con_vhdl xilinx counter

    本压缩包"counter_99.rar"包含了一个名为"counter_guide99.con"的VHDL源码文件,用于实现一个在Xilinx Spartan3 FPGA上的计数器设计。下面我们将详细探讨这个计数器的设计、功能以及与Xilinx FPGA的集成。 首先,...

    Line_Counter_2008

    Line_Counter_2008,正如其名,是一款专为开发者设计的代码行统计工具,旨在帮助程序员高效地掌握项目的状态,评估代码维护难度,以及在项目管理中进行成本估算。这款工具在.NET平台上运行,能够广泛应用于各种.NET...

    counter_4_bit.rar_4-bit counter vhdl_4bit 计数器 mc_counter_vhdl_vh

    在这个名为“counter_4_bit.rar”的压缩包中,包含了一个4位计数器的设计实例,对于学习和理解VHDL编程以及数字逻辑电路设计具有很高的参考价值。4位计数器是一个能够顺序计数从0到15的数字系统,它在许多数字系统和...

    8_COUNTER_lpc2138counter_源码

    标题中的“8_COUNTER_lpc2138counter_源码”指的是一个针对LPC2138微控制器的计数器应用示例的源代码。LPC2138是NXP公司生产的一款基于ARM7TDMI-S内核的微控制器,具有高性能、低功耗的特点,广泛应用于嵌入式系统...

    tb_counter.zip_counter_tb

    本篇文章将详细探讨`tb_counter.zip_counter_tb`这个项目,它是用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的测试平台,主要用于验证一个计数器的设计,并理解其工作原理。...

    binarycount.rar_Synchronous Counter_VHDL 计数器_binary counter_bina

    "binarycount.rar_Synchronous Counter_VHDL 计数器_binary counter_bina"这个标题明确指出了我们要探讨的是一个使用VHDL实现的同步二进制计数器。同步计数器的特点是其所有触发器在同一时钟边沿同步改变状态,这...

    Up_Down_Counter v1.0.zip_UP_counter_fpga_fpga的down_counter_modul

    标题"Up_Down_Counter v1.0.zip_UP_counter_fpga_fpga的down_counter_module"揭示了这是一个关于FPGA实现的可逆计数器,能够进行向上或向下计数的版本1.0的工程文件。描述" FPGA Up/Down couner Module"进一步确认了...

    Counter---PIC.rar_counter_pic counter_pic16f887

    标题中的“Counter---PIC.rar_counter_pic counter_pic16f887”暗示了这是一个关于使用PIC16F887微控制器实现计数功能的项目。PIC16F887是Microchip Technology公司生产的8位微控制器,常用于嵌入式系统设计,因其低...

    counter_99.rar_0到99倒计数_0~99的倒计数_counter_verilog99计数器_倒计数

    本文将深入探讨一个特定的Verilog实现:一个从99到1进行倒计数并自动回零的计数器,这个计数器被称为“counter_99”。这个设计实例不仅展示了Verilog的基本语法,还演示了如何构建一个具有特定功能的数字逻辑电路。 ...

    Counter_FPGAVHDL_

    本文将深入探讨"Counter_FPGAVHDL_"相关的知识点,以及如何利用VHDL来设计和测试一个时钟计数器。 标题"Counter_FPGAVHDL_"暗示了我们将在FPGA上实现一个基于VHDL的计数器。计数器是数字系统中最基本的组件,用于...

    MOD6COUNT_counter_modulo_

    标题“MOD6COUNT_counter_modulo_”提示我们这是一个与计数器相关的程序或设计,特别是模6计数器。模6计数器是一种数字逻辑电路,它在每次时钟脉冲后将计数值增加1,并在达到6后重置回0,如此循环。这种类型的计数器...

    counter_16_计数输入clk_计数器_

    标题"counter_16_计数输入clk_计数器_"指的是一个具有16位计数能力的计数器,它主要依赖于时钟信号(CLK)来实现计数功能。 计数器是数字系统中的一个基本组成部分,其功能是根据特定的输入信号(在这种情况下是...

    8bit_upDown_counter.rar_ UP DOWN COUNTER_8 bit counter_UP_count

    在这个上下文中的"8bit_upDown_counter.rar"是一个包含8位增减计数器设计的压缩文件,它被描述为简单、实用且优化过的实现。这个计数器能够进行向上(UP)和向下(DOWN)两种方向的计数,从0到255(8位二进制的最大...

    Python库 | django_counter_field_py3-0.0.1.2.tar.gz

    标题中的"Python库 | django_counter_field_py3-0.0.1.2.tar.gz"指出这是一个基于Python的软件包,具体来说是针对Django框架的一个扩展模块,名为`django_counter_field`. 这个版本号0.0.1.2表明它是该库的早期版本...

    bcd_updown_counter2.zip_4 digit counter_BCD up down Counter_bcd_

    总之,这个名为“bcd_updown_counter2”的项目提供了一个4位BCD加减计数器的Verilog实现,可以作为数字系统设计的基础组件,用于教育、学习或实际应用。通过理解这个计数器的工作原理和Verilog代码,我们可以更好地...

    counter_ip_verilog_

    "counter_ip_verilog_" 这个标题表明我们正在讨论一个使用 Verilog 编写的计数器IP( Intellectual Property)核心。IP核是预设计的、可重用的硬件模块,可以方便地集成到更大的电路设计中。这个项目特别适合初学者...

    up_down_counter.rar_32 counter_UP_up down count_up/down counter_

    在数字系统设计中,计数器是一种基本的逻辑单元,广泛应用于各种数字电路和嵌入式系统中。本项目探讨的是一个32位的增减计数器,它支持向上和向下计数,并且基于Altera FPGA(Field Programmable Gate Array)进行...

Global site tag (gtag.js) - Google Analytics