pluralising root key when using arraySerializer

This commit is contained in:
João Moura 2015-06-15 15:59:01 -03:00
parent 329691276a
commit 65e0d79195
4 changed files with 8 additions and 8 deletions

View File

@ -19,7 +19,7 @@ module ActiveModel
end end
def json_key def json_key
@objects.first.json_key if @objects.first @objects.first.json_key.pluralize if @objects.first
end end
def root=(root) def root=(root)

View File

@ -13,7 +13,7 @@ module ActiveModel
def fields_for(serializer) def fields_for(serializer)
key = serializer.json_key key = serializer.json_key
fields[key.to_sym] fields[key.to_sym] || fields[key.pluralize.to_sym]
end end
private private

View File

@ -28,7 +28,7 @@ module ActiveModel
@serializer = ArraySerializer.new([@blog], serializer: CustomBlogSerializer) @serializer = ArraySerializer.new([@blog], serializer: CustomBlogSerializer)
@adapter = ActiveModel::Serializer::Adapter::Json.new(@serializer) @adapter = ActiveModel::Serializer::Adapter::Json.new(@serializer)
expected = {custom_blog:[{ expected = {custom_blogs:[{
id: 1, id: 1,
special_attribute: "Special", special_attribute: "Special",
articles: [{id: 1,title: "Hello!!", body: "Hello, world!!"}, {id: 2, title: "New Post", body: "Body"}] articles: [{id: 1,title: "Hello!!", body: "Hello, world!!"}, {id: 2, title: "New Post", body: "Body"}]
@ -37,7 +37,7 @@ module ActiveModel
end end
def test_include_multiple_posts def test_include_multiple_posts
expected = { post: [{ expected = { posts: [{
title: "Hello!!", title: "Hello!!",
body: "Hello, world!!", body: "Hello, world!!",
id: 1, id: 1,

View File

@ -12,10 +12,10 @@ module ActiveModel
end end
def test_meta_is_present_with_root 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') adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog')
expected = { expected = {
blog: { alternate_blog: {
id: 1, id: 1,
title: "AMS Hints" title: "AMS Hints"
}, },
@ -39,7 +39,7 @@ module ActiveModel
serializer = AlternateBlogSerializer.new(@blog, root: 'blog', meta: {total: 10}, meta_key: "haha_meta") serializer = AlternateBlogSerializer.new(@blog, root: 'blog', meta: {total: 10}, meta_key: "haha_meta")
adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog') adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog')
expected = { expected = {
blog: { alternate_blog: {
id: 1, id: 1,
title: "AMS Hints" title: "AMS Hints"
}, },
@ -73,7 +73,7 @@ module ActiveModel
serializer = ArraySerializer.new([@blog], meta: {total: 10}, meta_key: "haha_meta") serializer = ArraySerializer.new([@blog], meta: {total: 10}, meta_key: "haha_meta")
adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog') adapter = ActiveModel::Serializer::Adapter::Json.new(serializer, root: 'blog')
expected = { expected = {
blog: [{ blogs: [{
id: 1, id: 1,
name: "AMS Hints", name: "AMS Hints",
writer: { writer: {