mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
pluralising root key when using arraySerializer
This commit is contained in:
parent
329691276a
commit
65e0d79195
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user