使用 JSONAPI 和 Rails 渲染数组

问题描述 投票:0回答:1

我正在使用 jsonapi 来渲染对象:

product = Product.find(1)
render json: ProductSerializer.new(product)

我的问题是,我应该如何序列化产品列表?

如果我这样做:

products = Product.all
render json: ProductSerializer.new(products)

它不起作用,我收到此错误(这是有道理的,因为我试图序列化一个数组,但它没有 id):

id 是 jsonapi 规范中的必填字段

如果我序列化每个产品并将其返回到数组中,如下所示:

response = []
products = Product.all
products.each do |product| 
  response << ProductSerializer.new(product)
end

每个对象都会有一个

included
对象,而不是仅将一个
included
附加到具有所有关系的响应中...

这就是

ProductSerializer

class ProjectSerializer
  include JSONAPI::Serializer
  
  set_type :product
  
  attributes :name
end
ruby-on-rails json-api
1个回答
0
投票

渲染 json:序列化(产品)

def序列化(数据,序列化器= ProductSerializer) serializer.new(data).serialized_hash[:data].map { |hash|哈希[:属性]} 结束

© www.soinside.com 2019 - 2024. All rights reserved.