ruby-on-rails – Rails ActiveRecord CounterCache和Callbacks

counter_cache是​​否递增和递减激活active_record回调?

User << AR

  has_many :cups

  after_update :do_something

  def do_something
     "Will I be called when number of cups updated ?"
  end

end

Cup << AR

   belongs_to :user,counter_cache: true

end

在上面的代码中,当添加一个新杯并且它属于一个用户时,将调用函数do_something,将在该用户调用update来更新cups_count,但是从我试过的看起来似乎是counter_cache更新没有火回调,可能是因为他们自己内部回调?

谢谢

解决方法

source用于计数器缓存,似乎ActiveRecord正在进行直接数据库更新,这将跳过回调.

update_all(updates.join(','),primary_key => id )

根据documentation for update_all,它确实跳过了回调.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...