【发布时间】:2016-03-17 18:14:18
【问题描述】:
我正在使用 Active Model Serializers v0.10.0.rc4
我想生成如下所示的 json:
{
"posts": [
{ "post": {"id": 2, "name": "foo"} },
{ "post": {"id": 3, "name": "bar"} }
],
"next_page": 3
}
我知道基本的:
render json: posts, each_serializer: PostSerializer
会产生这样的json:
[
{"id": 2, "name": "foo"}
{"id": 3, "name": "bar"}
]
我尝试了以下方法:
控制器:
render json: posts, serializer: PostsSerializer
posts_serializer:
class PostsSerializer < ActiveModel::Serializer
attributes :posts, :next_page
def posts
ActiveModel::Serializer::CollectionSerializer.new(object,
each_serializer: PostSerializer,
root: "post"
)
end
def next_page
3
end
end
但这会产生这样的json:
{
"posts": [
{
"object": {"id": 2, "name": "foo"},
"instance_options": {"each_serializer: {}", "root": "post" }
},
{
"object": {"id": 3, "name": "bar"},
"instance_options": {"each_serializer: {}", "root": "post" }
},
],
"next_page": 3
}
有人知道我怎样才能实现所需的架构吗?
【问题讨论】:
-
我目前正在处理同样的问题。如果您解决了这个问题,请告诉我。
标签: ruby ruby-on-rails-4 active-model-serializers