1

嗨,我正在使用 ruby​​-2.5.0 和 rails 5 开发一个 RoR 项目。我正在为我的 api 使用 jsonapi-serializers。我想自定义关联模型的属性。我有两个模型 Receipt 和 ReceiptPartial。收据有_许多收据部分。当我在序列化程序中编写 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']但没有奏效。我怎样才能做到这一点。请帮忙。提前致谢。

4

1 回答 1

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
于 2018-06-10T06:29:39.377 回答