Вернуть несколько сериализованных моделей.Прекращает сериализацию при добавлении в хеш - PullRequest
0 голосов
/ 05 декабря 2018

Я использую:

  • active_model_serializers 0.10.8
  • ruby ​​2.5.3p105
  • Rails 5.2.1.1

Сериализатор:

class CarSerializer < ActiveModel::Serializer
  attributes :make, :model
end

Если я сделаю это:

class MyController < ApplicationController
  def index
    @cars = Car.all

    render json: @cars
  end
end

Тогда мой API вернется, как и ожидалось, только атрибуты make и model (не ID или метки времени).Все хорошо.

Если я изменю свой контроллер на:

@cars = Car.all

render json: {
  cars: @cars
}

Он больше не использует сериализатор и возвращает полную модель (id, марка, модель, метки времени).

Я пытаюсь сделать это, так как хочу вернуть несколько моделей, а именно:

render json: {
  cars: @cars,
  drivers: @drivers
}

Куда я иду не так?Почему он не сериализуется, когда я добавляю его в хеш?

Новичок в ruby ​​и rails, извиняюсь за любые глупые ошибки!

Спасибо!

1 Ответ

0 голосов
/ 13 декабря 2018

Сработало, должно быть:

render json: {
      cars: ActiveModelSerializers::SerializableResource.new(Car.all),
      drivers: ActiveModelSerializers::SerializableResource.new(Driver.all)
}
...