【问题标题】:Return multiple serialized models. Stops serializing when adding to a hash返回多个序列化模型。添加到哈希时停止序列化
【发布时间】:2019-05-07 09:40:48
【问题描述】:

我正在使用:

  • active_model_serializers 0.10.8
  • 红宝石 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 按预期返回,只是品牌和型号属性(不是 ID 或时间戳)。都很好。

如果我将控制器更改为:

@cars = Car.all

render json: {
  cars: @cars
}

它不再使用序列化器并返回完整的模型(id、品牌、模型、时间戳)。

我正在尝试这样做,因为我想返回多个模型,即:

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

我哪里出错了?为什么我将它添加到哈希时它不序列化?

ruby 和 rails 的新手,为任何愚蠢的错误道歉!

谢谢!

【问题讨论】:

    标签: ruby-on-rails serialization active-model-serializers


    【解决方案1】:

    解决了,应该是:

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

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 2023-03-17
      • 2013-06-25
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多