gpt4 book ai didi

Ember.js - 错误 - 传递给 "Assertion failed: You must include an ` 的散列中的 `push` id`

转载 作者:行者123 更新时间:2023-12-04 06:38:39 26 4
gpt4 key购买 nike

通过使用 Express 编写的 REST API 将帖子(标题、文本)保存到 mongodb 数据库并刷新浏览器后,出现此错误。我已经将我的主键设置为 '_id' 并且一直在阅读有关可能对数据进行规范化的信息?

这是来自服务器的有效负载(db 中只有 1 个帖子):

{
"posts": [
{
"title": "The Title",
"text": "Lorem ipsum",
"_id": "52c22892381e452d1d000010",
"__v": 0
}
]
}

Controller :
App.PostsController = Ember.ArrayController.extend({
actions: {
createPost: function() {
// Dummy content for now
var to_post = this.store.createRecord('post', {
title: 'The Title',
text: 'Lorem ipsum'
});
to_post.save();
}
}
});

该模型:
App.Post = DS.Model.extend({
title: DS.attr('string'),
text: DS.attr('string')
});

序列化器:
App.MySerializer = DS.RESTSerializer.extend({
primaryKey: function(type){
return '_id';
}
});

适配器:
App.ApplicationAdapter = DS.RESTAdapter.extend({
namespace: 'api'
});

任何帮助深表感谢!如果您需要任何其他信息,请告诉我。
谢谢

最佳答案

使用自定义适配器/序列化器时,命名很重要。如果您希望它适用于整个应用程序,它应该被称为 ApplicationSerializer

App.ApplicationSerializer = DS.RESTSerializer.extend({
primaryKey: '_id'
});

适配器:
App.ApplicationAdapter = DS.RESTAdapter.extend({
namespace: 'api'
});

如果您只想将其应用于单个模型(这也适用于适配器)
App.PostSerializer = DS.RESTSerializer.extend({
primaryKey: '_id'
});

关于Ember.js - 错误 - 传递给 "Assertion failed: You must include an ` 的散列中的 `push` id`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20850930/

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