Skip to content

Commit 65e0d79

Browse files
committed
pluralising root key when using arraySerializer
1 parent 3296912 commit 65e0d79

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

lib/active_model/serializer/array_serializer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def initialize(objects, options = {})
1919
end
2020

2121
def json_key
22-
@objects.first.json_key if @objects.first
22+
@objects.first.json_key.pluralize if @objects.first
2323
end
2424

2525
def root=(root)

lib/active_model/serializer/fieldset.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def fields
1313

1414
def fields_for(serializer)
1515
key = serializer.json_key
16-
fields[key.to_sym]
16+
fields[key.to_sym] || fields[key.pluralize.to_sym]
1717
end
1818

1919
private

test/adapter/json/collection_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def test_with_serializer_option
2828
@serializer = ArraySerializer.new([@blog], serializer: CustomBlogSerializer)
2929
@adapter = ActiveModel::Serializer::Adapter::Json.new(@serializer)
3030

31-
expected = {custom_blog:[{
31+
expected = {custom_blogs:[{
3232
id: 1,
3333
special_attribute: "Special",
3434
articles: [{id: 1,title: "Hello!!", body: "Hello, world!!"}, {id: 2, title: "New Post", body: "Body"}]
@@ -37,7 +37,7 @@ def test_with_serializer_option
3737
end
3838

3939
def test_include_multiple_posts
40-
expected = { post: [{
40+
expected = { posts: [{
4141
title: "Hello!!",
4242
body: "Hello, world!!",
4343
id: 1,

test/serializers/meta_test.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ def setup
1212
end
1313

1414
def test_meta_is_present_with_root
15-
serializer = AlternateBlogSerializer.new(@blog, root: "blog", meta: {total: 10})
15+
serializer = AlternateBlogSerializer.new(@blog, meta: {total: 10})
1616
adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog')
1717
expected = {
18-
blog: {
18+
alternate_blog: {
1919
id: 1,
2020
title: "AMS Hints"
2121
},
@@ -39,7 +39,7 @@ def test_meta_key_is_used
3939
serializer = AlternateBlogSerializer.new(@blog, root: 'blog', meta: {total: 10}, meta_key: "haha_meta")
4040
adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog')
4141
expected = {
42-
blog: {
42+
alternate_blog: {
4343
id: 1,
4444
title: "AMS Hints"
4545
},
@@ -73,7 +73,7 @@ def test_meta_is_present_on_arrays_with_root
7373
serializer = ArraySerializer.new([@blog], meta: {total: 10}, meta_key: "haha_meta")
7474
adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog')
7575
expected = {
76-
blog: [{
76+
blogs: [{
7777
id: 1,
7878
name: "AMS Hints",
7979
writer: {

0 commit comments

Comments
 (0)