module Curation module Cache require 'active_support/concern' extend ActiveSupport::Concern included do after_save :cache_tag_ids, :do_before_save after_destroy :do_before_save before_destroy :cache_tag_ids end def cache_tag_ids if self.class == ::CurationPost @tag_ids = self.tag_ids @org_tag_ids = self.org_tag_ids @category_id = self.category_id @org_category_id = self.org_category_id end end def do_before_save if self.class == ::SubPart ::CurationCache.where(parent_id: /^#{self.id}/).delete elsif self.class == ::CurationPost || (self.class == ::Page && self.module == "curation") ::CurationCache.all.delete end end end end