module ModelCaching extend ActiveSupport::Concern def write_cache(action, value, expiration_time) Rails.cache.write(cache_key_generator(action), value, expires_in: expiration_time.seconds) end def read_cache(action) Rails.cache.read(cache_key_generator(action)) end def delete_cache(action) Rails.cache.delete(cache_key_generator(action)) end private def cache_key_generator(action) class_name = self.class.name.to_s object_id = id.to_s "#{class_name}_#{object_id}_#{action}" end end