我正在使用最新的AMS v0.10.0.rc3
和JSON API适配器。
到目前为止工作得很好,并且正在添加一些我想要改变的有用约定。
例如,假设我有一个Post序列化器和一个Comment序列化器,如下所示:
class Post < ActiveModel::Serializer
attributes :id, :title
has_many :comments
end
class Comment < ActiveModel::Serializer
attributes :id, :comment
belongs_to :post
end
然后,如果我请求/posts/1
,例如我得到以下
{
"data": {
"id": "1",
"type": "posts",
"attributes": {
"title": "My awesome title",
},
"relationships": {
"comments": {
"data": [
{
"id": "1",
"type": "comments"
},
{
"id": "2",
"type": "comments"
}
]
}
}
}
}
注意relationships
成员的显示方式以及spec的成员是如何标记为 MAY 的可选成员。
这是一个很好的约定,我需要覆盖一些时间。
所以我的问题是:
relationship
成员?(如果我错过了一些细节,请发表评论,我会更新问题。)
答案 0 :(得分:0)
目前,您最好的选择是定义两个序列化程序,一个具有关联,一个没有,并在您的渲染调用中指定要使用的(render json: posts, each_serializer: PostWithoutAssociationsSerializer
)。
目前正在讨论向关联和属性添加include_if
选项,如果它被合并,您可以利用这些选项。