【发布时间】:2015-09-27 18:07:12
【问题描述】:
使用 json-api 适配器使用 ActiveModel::Serializer (0.10.0.rc3),我如何才能在默认情况下仅呈现与 id 的关系?
考虑一下我的序列化器
class ASerializer < Api::V1::BaseSerializer
attributes :id, :name
has_many :bs
end
但是,这也会呈现BSerializer 中定义的所有属性。我可以定义一个BMiniSerializer 来仅渲染id,并将其用作
has_many :bs, serializer: BMiniSerializer,但这意味着我必须为所有模型执行此操作并将其添加到所有序列化器中。有没有更优雅的默认方式?
编辑
我想这就是 :include 和 :fields 的用途。不幸的是,由于我为我的 API 控制器和序列化程序使用了与我的模型不同的命名空间,我需要明确指定关联模型的序列化程序,以便 :include 和 :fields 工作。
【问题讨论】:
标签: ruby-on-rails active-model-serializers