Ruby 当post或post为空或nil时,ActiveModel序列化程序忽略根键
我正在将活动模型序列化程序V0.10.0与Rails 5 api应用程序一起使用。在实现过程中,我注意到当posts/post分别为空或nil时,AMS完全忽略根键。这种行为实际上破坏了我的移动应用程序,因为它总是希望所有响应中都包含根密钥数据 因此,我想在这里实现的是,无论我总是希望Ruby 当post或post为空或nil时,ActiveModel序列化程序忽略根键,ruby,ruby-on-rails-5,active-model-serializers,Ruby,Ruby On Rails 5,Active Model Serializers,我正在将活动模型序列化程序V0.10.0与Rails 5 api应用程序一起使用。在实现过程中,我注意到当posts/post分别为空或nil时,AMS完全忽略根键。这种行为实际上破坏了我的移动应用程序,因为它总是希望所有响应中都包含根密钥数据 因此,我想在这里实现的是,无论我总是希望数据作为我的Rails应用程序响应的根元素处理所有请求 post为空时对SHOW API的响应 SHOW render json: @post, root: 'data' 期望 { "data": {} }
数据作为我的Rails应用程序响应的根元素处理所有请求
post为空时对SHOW API的响应
SHOW render json: @post, root: 'data'
期望
{
"data": {}
}
{
"data": []
}
实际的
null
{
"posts": []
}
帖子为空时对索引API的响应
INDEX render json: @posts, root: 'data'
期望
{
"data": {}
}
{
"data": []
}
实际的
null
{
"posts": []
}
class ApplicationSerializer
class PostSerializer
你能发布你的序列化程序类定义吗?@lacostenycoder:我已经用ApplicationSerializer&PostSerializer更新了我的帖子。谢谢根据ActiveModel序列化程序文档,这是否是意外行为?正在哪里设置@post
?是不是nil
?如果您先设置@post={}
会发生什么?您可以发布序列化程序类定义吗?@lacostenycoder:我已经用ApplicationSerializer&PostSerializer更新了我的帖子。谢谢根据ActiveModel序列化程序文档,这是否是意外行为?正在哪里设置@post
?是不是nil
?如果先设置@post={}
,会发生什么?