gpt4 book ai didi

ruby-on-rails - Json API 资源 |使用对象数组进行响应

转载 作者:行者123 更新时间:2023-12-01 19:17:07 25 4
gpt4 key购买 nike

我在我的项目中使用 json api 资源 gem。

我设置了一个简单的资源

module V1
class ExpectedPaymentResource < JSONAPI::Resource
attributes :registration_id, :invoiced_amount_due, :date_due, :status, :created_at, :updated_at
end
end

在我的 Controller 中,我从服务获取了 ExpectedPayments 对象的数组

expected_payments = CreateExpectedPayments.new(registration_params).call

我现在需要返回expected_payments以 json api 格式。所以根据我的理解,我应该使用 serializer

我这样做

render json: JSONAPI::ResourceSerializer.new(ExpectedPaymentResource).serialize_to_hash(ExpectedPaymentResource.new(expected_payments, nil))

我得到<NoMethodError: undefined method 'id' for <Array:0x005642734fa6f8>>

然后我尝试了:

render json: JSONAPI::ResourceSerializer.new(ExpectedPaymentResource).serialize_to_hash(ExpectedPaymentResource.new(expected_payments[0], nil))

这对数组中的第一个对象有效。

documentation说“ResourceSerializer 有一个 serialize_to_hash 方法,该方法采用资源实例或资源实例数组进行序列化。”

如何让它与资源实例数组一起使用?我在文档中看不到任何示例。

最佳答案

如果您使用的是 Rails。请尝试 active_model_serializer,它将约定优于配置引入到您的 JSON 生成中。

https://github.com/rails-api/active_model_serializers

一旦开始使用 AMS,您就可以停止错误地生成 JSON 响应。

以下是 AMS 入门指南,

https://github.com/rails-api/active_model_serializers/blob/master/docs/general/getting_started.md

关于ruby-on-rails - Json API 资源 |使用对象数组进行响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42227586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com