【发布时间】:2017-01-26 10:40:27
【问题描述】:
使用jsonapi序列化作为默认的序列化类型,有谁知道在序列化集合时如何获取包含的集合类型?
我尝试为资源指定自定义序列化程序并覆盖类型,但出现错误
NoMethodError(UsersSerializer:Class 的未定义方法“类型”):
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”会发现大量与我想要完成的事情无关的信息。
非常感谢任何帮助。
【问题讨论】:
标签: ruby-on-rails serialization types json-api