gpt4 book ai didi

ruby-on-rails - 如何使我的回答达到要求的标准

转载 作者:行者123 更新时间:2023-12-02 19:54:00 25 4
gpt4 key购买 nike

因此,我有一个正在运行的后端 Rails 应用程序,它响应特定请求,如下所示

{"id": 68,"name": "姓名","email": "email"}

但是在 ember 中,我收到此错误

Error: Assertion Failed: normalizeResponse must return a valid JSON API document:
* One or more of the following keys must be present: "data", "errors", "meta".
at Object.assert (index.js:163)
at normalizeResponseHelper (-private.js:7428)
at -private.js:13291
at Backburner._run (backburner.js:1010)
at Backburner._join (backburner.js:986)
at Backburner.join (backburner.js:757)
at -private.js:13287
at tryCatcher (rsvp.js:335)
at invokeCallback (rsvp.js:506)
at publish (rsvp.js:492)

我尝试将所有内容包装在“数据”数组下,然后出现此错误

Error: Assertion Failed: normalizeResponse must return a valid JSON API document:
* Top level of a JSON API document must be an object
at Object.assert (index.js:163)
at normalizeResponseHelper (-private.js:7428)
at -private.js:13291
at Backburner._run (backburner.js:1010)
at Backburner._join (backburner.js:986)
at Backburner.join (backburner.js:757)
at -private.js:13287
at tryCatcher (rsvp.js:335)
at invokeCallback (rsvp.js:506)
at publish (rsvp.js:492)

我如何标准化这一切以及在哪里,后端还是前端?

更新:我做了一个哈希响应= {:data=>@user},然后返回了response.to_json我得到了这个

Error: Assertion Failed: Encountered a resource object with an undefined type (resolved resource using (unknown))
at Object.assert (index.js:163)
at Class._normalizeResourceHelper (json-api.js:183)
at Class._normalizeDocumentHelper (json-api.js:133)
at Class._normalizeResponse (json-api.js:228)
at Class.normalizeSingleResponse (json.js:407)
at Class.normalizeSaveResponse (json.js:393)
at Class.normalizeCreateRecordResponse (json.js:351)
at Class.normalizeResponse (json.js:232)
at normalizeResponseHelper (-private.js:7421)
at -private.js:13291

最佳答案

ember-data 的默认值是使用 JSON:API标准。但这不是必需的,因此您有两个选择:

1)您可以修改服务器上的输出以满足该标准,有一些库可以为您执行此操作,但我没有走这条路,所以我不了解当前的最新情况。

2) 您可以告诉 ember 以不同的方式解析您的响应,您可以通过为您的应用程序自定义适配器来实现此目的。

我们的 API 看起来很像您的 API,在我的 app/adapters/application.js 文件中我有:

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
});

记录于https://guides.emberjs.com/release/models/customizing-adapters/ 。这是一种完全受支持的自定义 ember 以满足您的需求的方式,ember-cli-mirage 等其他工具也为这种结构较少的 REST 适配器方法提供支持。

关于ruby-on-rails - 如何使我的回答达到要求的标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57512091/

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