我创建了一个我的activerecords包含支持存档的模块。这允许我调用存档!和unarchive!在这些对象上更新归档字段。
我想知道我可以做什么来减少这些对象在破坏时完成的计数器缓存!命令被调用。
我的模特看起来像这样......
class Post < ActiveRecord::Base
include Archivable
belongs_to :user, counter_cache: :posts_count
validates_presence_of :user_id
end
每次帖子归档后,如何减少用户模型中的posts_count列?
由于
答案 0 :(得分:1)
我不会手动执行此操作 - 而是创建archived
范围 - 并添加一个新的计数器缓存,仅涵盖未存档的记录 - 它会跟踪本身就是这样:))
但是,我认为您也可以使用以下内容手动递减计数器(在归档方法的末尾):
User.decrement_counter(:posts_count, user.id)