diff --git a/lib/active_model/serializer/array_serializer.rb b/lib/active_model/serializer/array_serializer.rb index b05cb1dd..71c7ab44 100644 --- a/lib/active_model/serializer/array_serializer.rb +++ b/lib/active_model/serializer/array_serializer.rb @@ -19,7 +19,7 @@ module ActiveModel end def json_key - @objects.first.json_key if @objects.first + @objects.first.json_key.pluralize if @objects.first end def root=(root) diff --git a/lib/active_model/serializer/fieldset.rb b/lib/active_model/serializer/fieldset.rb index 911dac25..3ff42bed 100644 --- a/lib/active_model/serializer/fieldset.rb +++ b/lib/active_model/serializer/fieldset.rb @@ -13,7 +13,7 @@ module ActiveModel def fields_for(serializer) key = serializer.json_key - fields[key.to_sym] + fields[key.to_sym] || fields[key.pluralize.to_sym] end private diff --git a/test/adapter/json/collection_test.rb b/test/adapter/json/collection_test.rb index 018a6b23..54bc5431 100644 --- a/test/adapter/json/collection_test.rb +++ b/test/adapter/json/collection_test.rb @@ -28,7 +28,7 @@ module ActiveModel @serializer = ArraySerializer.new([@blog], serializer: CustomBlogSerializer) @adapter = ActiveModel::Serializer::Adapter::Json.new(@serializer) - expected = {custom_blog:[{ + expected = {custom_blogs:[{ id: 1, special_attribute: "Special", articles: [{id: 1,title: "Hello!!", body: "Hello, world!!"}, {id: 2, title: "New Post", body: "Body"}] @@ -37,7 +37,7 @@ module ActiveModel end def test_include_multiple_posts - expected = { post: [{ + expected = { posts: [{ title: "Hello!!", body: "Hello, world!!", id: 1, diff --git a/test/serializers/meta_test.rb b/test/serializers/meta_test.rb index b6201574..802049eb 100644 --- a/test/serializers/meta_test.rb +++ b/test/serializers/meta_test.rb @@ -12,10 +12,10 @@ module ActiveModel end def test_meta_is_present_with_root - serializer = AlternateBlogSerializer.new(@blog, root: "blog", meta: {total: 10}) + serializer = AlternateBlogSerializer.new(@blog, meta: {total: 10}) adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog') expected = { - blog: { + alternate_blog: { id: 1, title: "AMS Hints" }, @@ -39,7 +39,7 @@ module ActiveModel serializer = AlternateBlogSerializer.new(@blog, root: 'blog', meta: {total: 10}, meta_key: "haha_meta") adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog') expected = { - blog: { + alternate_blog: { id: 1, title: "AMS Hints" }, @@ -73,7 +73,7 @@ module ActiveModel serializer = ArraySerializer.new([@blog], meta: {total: 10}, meta_key: "haha_meta") adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog') expected = { - blog: [{ + blogs: [{ id: 1, name: "AMS Hints", writer: {