我使用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
}