【发布时间】:2015-11-04 19:43:49
【问题描述】:
我的 ember 应用没有将我的外键发送到后端。
我有一个名为 issues 的表,其中有一个名为 categories 的相关表
我的模型是:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
category_id: DS.belongsTo('category'),
description: DS.attr('string')
});
我的路线是:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return this.store.findAll('issue');
},
actions: {
create: function(){
var issue = this.store.createRecord('issue');
issue.name = this.get('controller').get('newName');
issue.description = this.get('controller').get('newDescription');
issue.category_id = parseInt(this.get('controller').get('newCategory'));
//debugger;
console.log(issue);
issue.save();
},
...
other actions
...
}
}
});
上面的 console.log 看起来 category_id 设置正确:
category_id: 3
description: "foobar"
name: "test"
但是,我发送到后端的 JSON 负载看起来像:
{"issue":{"name":"test","description":"foobar","category_id":null}}
我尝试通过在 app/serializers/application.js 中添加自定义序列化程序来逐步完成
export default DS.RESTSerializer.extend({
...
serialize: function(snapshot,options){
console.debug('options='+options);
debugger;
var json = this._super(snapshot, options);;
return json;
}
...
});
但是我迷失在所有的超级调用超级间接中。
snapshot.record 有 category_id: 3,但从 this._super() 调用返回的 json 有 category_id: null
选项有includeID:true
任何线索将不胜感激......
余烬:2.0.2
灰烬数据:2.0.0
【问题讨论】:
标签: ember.js foreign-keys ember-data