Rails带有自定义属性的JSON API序列化程序

时间:2018-06-10 06:09:17

标签: ruby-on-rails json-api jsonapi-serialize

您好我正在使用ruby-2.5.0和rails 5进行RoR项目。我正在为我的api使用jsonapi-serializers。我想自定义关联模型的属性。我有两个型号Receipt和ReceiptPartial。收据has_many receipt_partials。当我在我的序列化程序中编写has_many:receipt_partials时,它返回所有列,但我只想要几列。

class ReceiptPartialSerializer
  include JSONAPI::Serializer

  TYPE = 'receipt'
  attribute :id
  has_many :receipt_partials
end

我想限制receipt_partials的列。 我也试过has_many :receipt_partials, only: ['id']但是没有用。 我怎样才能做到这一点。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

根据文档,您应该只在相关的序列化器类上指定属性,例如,如果您想在ReceiptPartial Serilizer中显示您可以执行的id,name属性。

class BaseSerializer
  include JSONAPI::Serializer
end

class ReceiptSerializer < BaseSerializer
  TYPE = 'receipt'
  attribute :id

  has_many : receipt_partials
end

class ReceiptPartialSerializer < BaseSerializer
  attributes :id, :name
end