orbit4-5/app/models/orbit_observer.rb

26 lines
623 B
Ruby

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