class OrbitObserver < Mongoid::Observer # observe OrbitApp.get_models observe :tag, :category def after_save(document) clear_cache(document) end def after_destroy(document) clear_cache(document) end def clear_cache(document) # model_module_hash = OrbitApp.get_model_module_hash case document.class.to_s when 'Tag' document.module_app.each do |module_app| Rails.cache.delete_matched( /#{ module_app.key }/ ) end when 'Category' Rails.cache.delete_matched( /#{ document.module_app.key }/ ) else # Rails.cache.delete_matched( /#{model_module_hash[document.class.to_s]}/ ) end end end