Сериализатор Rails JSON API с настраиваемыми атрибутами

Привет, я работаю над проектом RoR с ruby-2.5.0 и rails 5. Я использую сериализаторы jsonapi для своего API. Я хочу настроить атрибуты связанной модели. У меня есть две модели Receipt и ReceiptPartial. квитанция имеет_много квитанций_partials. когда я пишу has_many :receipt_partials в своем сериализаторе, он возвращает все столбцы, но мне нужно только несколько столбцов.

class ReceiptPartialSerializer
  include JSONAPI::Serializer

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

Я хочу ограничить столбцы квитанции_partials. Я также пробовал has_many :receipt_partials, only: ['id'], но не работал. Как я могу достичь этого. Пожалуйста помоги. Заранее спасибо.


person awsm sid    schedule 10.06.2018    source источник


Ответы (1)


Основываясь на документации, вы должны просто указать атрибуты в соответствующем классе сериализатора, например, если вы хотите отобразить атрибуты id, name в ReceiptPartial Serilizer, вы можете сделать следующее.

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
person Shani    schedule 10.06.2018