使用jsonapi序列化作为默认序列化类型,是否有人知道在序列化集合时如何获取集合类型?
我已经尝试为资源指定自定义序列化程序并覆盖该类型,但是我收到错误
class UsersSerializer < ActiveModel::Serializer::CollectionSerializer
type 'users'
end
或
class UsersSerializer < ActiveModel::Serializer::CollectionSerializer
def json_key
"users"
end
end
最后一个不会抛出错误但也不会发出类型
我想要的输出是与返回对象上具有type属性的jsonapi一致的输出。即。
{
"type": "users",
"data": [{user}{user}{user}]
}
我目前得到的是
{
"data: [{user},{user},{user}]
}
当我从控制器中调用以下内容时
render json: @users, serializer: UsersSerializer, each_serializer: UserSerializer
或
render json: @users, serializer: UsersSerializer, :root='users', each_serializer: UserSerializer
或
render json: @users, serializer: UsersSerializer, json_key='users' each_serializer: UserSerializer
我知道我要做的事情可能很简单,但是搜索'ruby rails 5 api app jsonapi CollectionSerializer type'会发现一系列与我想要完成的事情无关的信息。
非常感谢任何帮助。
答案 0 :(得分:1)
经过进一步的研究,&#39;&#39;&#39;属性不是root用户的json-api规范的一部分。相反,我选择使用&#39; meta&#39;顶级集合类型的属性。即。
render json: @users, serializer: UsersSerializer, :meta=>{:type=>"users"}, each_serializer: UserSerializer