Как заставить fast_jsonapi возвращать атрибуты отношений - PullRequest
2 голосов
/ 21 апреля 2019

У меня есть rails api с несколькими моделями, которые сериализуются с помощью гема fast_jsonapi.

Вот так выглядят мои модели:

class Shift < ApplicationRecord
  belongs_to :team, optional: true
  ...
class Team < ApplicationRecord
  has_many :shifts
  ...

Так выглядит сериализатор

class ShiftSerializer
  include FastJsonapi::ObjectSerializer
  ...
  belongs_to :team
  ...
end

Сериализация работает. Однако, несмотря на то, что я включаю документ составной команды:

def index
  shifts = policy_scope(Shift).includes(:team)
  options = {}
  options[:include] = [:team, :'team.name', :'team.color']
  render json: ShiftSerializer.new(shifts, options)
end

Я все еще получаю объект, отформатированный так:

...
relationships: {
  team: {
    data: {
      id: "22",
      type: "Team"
    }
  }
}

В то время как я ожидаю получить также атрибуты модели моей команды.

1 Ответ

1 голос
/ 21 апреля 2019

fast_jsonapi реализует спецификацию json api , поэтому ответ включает ключ «включено», в котором размещаются сериализованные данные для отношений. Это поведение по умолчанию

enter image description here

...