Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 当post或post为空或nil时,ActiveModel序列化程序忽略根键_Ruby_Ruby On Rails 5_Active Model Serializers - Fatal编程技术网

Ruby 当post或post为空或nil时,ActiveModel序列化程序忽略根键

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": {} }

我正在将活动模型序列化程序V0.10.0与Rails 5 api应用程序一起使用。在实现过程中,我注意到当posts/post分别为空或nil时,AMS完全忽略根键。这种行为实际上破坏了我的移动应用程序,因为它总是希望所有响应中都包含根密钥数据

因此,我想在这里实现的是,无论我总是希望
数据
作为我的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={}
,会发生什么?