我已经看到了一些方法可以做到这一点,但我很好奇“最正确”的方法是使用最新版本(master甚至)的ember-data rev 12
选项#1(看似最明显的方式)
App.Post = DS.Model.extend({
primaryKey: '_id',
_id: DS.attr('string')
});
选项#2(按类型使用适配器映射)
App.Adapter.map('App.Post', {
primaryKey: '_id'
});
选项#3(在序列化程序中硬代码 - 假设每个模型都有相同的自定义pk)
App.MySerializer = DS.RESTSerializer.extend({
primaryKey: function(type) {
return '_id';
}
});
答案 0 :(得分:2)
答案是选项#2,因为适配器是相关组件。适配器需要知道哪个属性是主键。对模型或序列化器来说并不重要。
答案 1 :(得分:1)
这个问题很陈旧,但它没有被接受的答案,而且它出现在谷歌上面。
目前的答案是在序列化程序(https://guides.emberjs.com/v3.0.0/models/customizing-serializers/#toc_ids)
上进行设置// app/serializers/application.js
import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
primaryKey: '_id'
});
答案 2 :(得分:0)
如本主题所述,请尝试https://github.com/toranb/ember-data-django-rest-adapter/issues/14
YourRestadapter.configure('App.Person', {
primaryKey: 'slug'
});
YourRestadapter =您在项目中使用的其余适配器(例如,DS.RESTAdapter)