diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fa42f9a4..2b41d5fcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ Fixes: - [#2223](https://github.com/rails-api/active_model_serializers/pull/2223) Support Fieldset in Attributes/JSON adapters documented in [docs/general/fields.md](https://github.com/rails-api/active_model_serializers/blob/0-10-stable/docs/general/fields.md) that worked partially before (@bf4) - [#2337](https://github.com/rails-api/active_model_serializers/pull/2337) fix incorrect belongs_to serialization when foreign_key on object and belongs_to is blank (@InteNs) - Fixes incorrect json-api generation when `jsonapi_use_foreign_key_on_belongs_to_relationship` is `true` and the relationship is blank +- [#2172](https://github.com/rails-api/active_model_serializers/pull/2172) Preserve the namespace when falling back to a superclass serializer Misc: diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 864eba7b3..605d9dc5e 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -94,7 +94,7 @@ def self.get_serializer_for(klass, namespace = nil) if serializer_class serializer_class elsif klass.superclass - get_serializer_for(klass.superclass) + get_serializer_for(klass.superclass, namespace) else nil # No serializer found end diff --git a/test/serializers/serializer_for_with_namespace_test.rb b/test/serializers/serializer_for_with_namespace_test.rb index d2728f7dc..3bba5e4af 100644 --- a/test/serializers/serializer_for_with_namespace_test.rb +++ b/test/serializers/serializer_for_with_namespace_test.rb @@ -9,6 +9,7 @@ class Book < ::Model attributes :title, :author_name associations :publisher, :pages end + class Ebook < Book; end class Page < ::Model; attributes :number, :text end class Publisher < ::Model; attributes :name end @@ -85,6 +86,11 @@ class BookSerializer < ActiveModel::Serializer } assert_equal expected, result end + + test 'follows inheritance with a namespace' do + serializer = ActiveModel::Serializer.serializer_for(Ebook.new, namespace: Api::V3) + assert_equal Api::V3::BookSerializer, serializer + end end end end