module ActiveModel::Serializer::Caching::ClassMethods

def object_cache_keys(collection_serializer, adapter_instance, include_directive)

Returns:
  • (Array) - all cache_key of collection_serializer

Parameters:
  • include_directive (JSONAPI::IncludeDirective) --
  • adapter_instance (ActiveModelSerializers::Adapter::Base) --
  • serializers (ActiveModel::Serializer::CollectionSerializer) --
def object_cache_keys(collection_serializer, adapter_instance, include_directive)
  cache_keys = []
  collection_serializer.each do |serializer|
    cache_keys << object_cache_key(serializer, adapter_instance)
    serializer.associations(include_directive).each do |association|
      # TODO(BF): Process relationship without evaluating lazy_association
      association_serializer = association.lazy_association.serializer
      if association_serializer.respond_to?(:each)
        association_serializer.each do |sub_serializer|
          cache_keys << object_cache_key(sub_serializer, adapter_instance)
        end
      else
        cache_keys << object_cache_key(association_serializer, adapter_instance)
      end
    end
  end
  cache_keys.compact.uniq
end