我为我的模型定义了一个Active Model Serializer,当我调用render json传递单个集合时,一切正常,如下所示:
render json: @collection
问题是当我尝试合并不同的属性和集合时,例如:
json_response = service.errors.merge(attribute1: value1)
render json: json_response.merge(collection1: @collection, collection2: @collection2)
当我这样做时,集合不使用定义的Active Record Serializer。相反,他们只是序列化他们所有的属性。
如何确保在进行这些合并时,序列化仍然使用我为其定义的Active Record Serializer?
答案 0 :(得分:1)
您可以在渲染之前直接序列化它们:
json_response = service.errors.merge(attribute1: value1)
render json: json_response.merge(
collection1: ActiveModelSerializers::SerializableResource.new(@collection).as_json,
collection2: ActiveModelSerializers::SerializableResource.new(@collection2).as_json
)