如何从序列化器的输出中隐藏`has_many`关系ids?

时间:2018-03-16 18:11:07

标签: active-model-serializers

我使用ActiveModelSerializer序列化面向公众的API的响应。序列化程序中有一个has_many关系,因此在输出中包含一个键,其中包含来自该关系的ID数组。

我想不向我们API的用户展示ID。有没有办法可以从序列化输出中排除这个键?

以下示例;假设模型和数据库中存在所有attributes

bike_serializer.rb:

class BikeSerializer < ActiveModel::Serializer
  has_many :tires, serializer: TireSerializer

  attributes :category, :brand
end

tire_serializer.rb:

class TireSerializer < ActiveModel::Serializer
  belongs_to :bike

  attributes :brand, :type, :diameter
end

来自bike_controller.rb的序列化输出:

"bike": {
  ...
  "tire_ids": [1,2] # I want this excluded from the serialized output
}

0 个答案:

没有答案