diff --git a/lib/active_model/serializer/collection_serializer.rb b/lib/active_model/serializer/collection_serializer.rb index 7a80a839..19a736cf 100644 --- a/lib/active_model/serializer/collection_serializer.rb +++ b/lib/active_model/serializer/collection_serializer.rb @@ -19,11 +19,10 @@ module ActiveModel # @api private def serializable_hash(adapter_options, options, adapter_instance) - include_directive = ActiveModel::Serializer.include_directive_from_options(adapter_options) - adapter_options[:cached_attributes] ||= ActiveModel::Serializer.cache_read_multi(self, adapter_instance, include_directive) - adapter_opts = adapter_options.merge(include_directive: include_directive) + options[:include_directive] ||= ActiveModel::Serializer.include_directive_from_options(adapter_options) + options[:cached_attributes] ||= ActiveModel::Serializer.cache_read_multi(self, adapter_instance, options[:include_directive]) serializers.map do |serializer| - serializer.serializable_hash(adapter_opts, options, adapter_instance) + serializer.serializable_hash(adapter_options, options, adapter_instance) end end diff --git a/test/cache_test.rb b/test/cache_test.rb index f0958931..508c346f 100644 --- a/test/cache_test.rb +++ b/test/cache_test.rb @@ -415,7 +415,7 @@ module ActiveModelSerializers adapter_options = {} adapter_instance = ActiveModelSerializers::Adapter::Attributes.new(serializers, adapter_options) serializers.serializable_hash(adapter_options, options, adapter_instance) - cached_attributes = adapter_options.fetch(:cached_attributes).with_indifferent_access + cached_attributes = options.fetch(:cached_attributes).with_indifferent_access include_directive = ActiveModelSerializers.default_include_directive manual_cached_attributes = ActiveModel::Serializer.cache_read_multi(serializers, adapter_instance, include_directive).with_indifferent_access @@ -446,9 +446,9 @@ module ActiveModelSerializers serializers.serializable_hash(adapter_options, options, adapter_instance) # Should find something with read_multi now - adapter_options = {} + options = {} serializers.serializable_hash(adapter_options, options, adapter_instance) - cached_attributes = adapter_options.fetch(:cached_attributes) + cached_attributes = options.fetch(:cached_attributes) include_directive = ActiveModelSerializers.default_include_directive manual_cached_attributes = ActiveModel::Serializer.cache_read_multi(serializers, adapter_instance, include_directive)