【发布时间】:2020-01-01 20:31:28
【问题描述】:
我必须销毁大量数据,并更新我的计数器缓存,但是当我使用 destroy_all 时,每次删除都会调用计数器缓存。有没有办法只在destroy_all之后更新我的计数器?
我已经尝试过 ActiveModel 回调,但它们与 destroy_all 相同,每条记录调用一次。
belongs_to :research, counter_cache: :total_participants
ResearchParticipant.from_research(@research_id).destroy_all
【问题讨论】:
-
destroy_all调用所有回调(包括更新计数器缓存列),delete_all不会触发任何回调,但您必须在最后手动更新计数器缓存列的值
标签: ruby-on-rails ruby activemodel counter-cache