diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 118098f93..90c75597d 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -192,6 +192,7 @@ def self.inherited(base) base._attributes_data = _attributes_data.dup base._reflections = _reflections.dup base._links = _links.dup + base.config = ActiveSupport::InheritableOptions.new(config) end # @return [Array] Key names of declared attributes diff --git a/test/serializers/configuration_test.rb b/test/serializers/configuration_test.rb index 1ac70dbb2..0a03153b9 100644 --- a/test/serializers/configuration_test.rb +++ b/test/serializers/configuration_test.rb @@ -5,6 +5,10 @@ module ActiveModel class Serializer class ConfigurationTest < ActiveSupport::TestCase + class CustomSerializer < ActiveModel::Serializer + config.adapter = :json_api + end + def test_collection_serializer assert_equal ActiveModel::Serializer::CollectionSerializer, ActiveModelSerializers.config.collection_serializer end @@ -29,6 +33,10 @@ def test_setting_array_serializer_sets_collection_serializer def test_default_adapter assert_equal :attributes, ActiveModelSerializers.config.adapter end + + def test_subclass_adapter + assert_equal :json_api, CustomSerializer.config.adapter + end end end end