请帮助我。我有两个模型,分别是foo
和bar
模型。我试图使用POST
/foos
/foos
端点上创建记录。然而 邮政POST
/foos
有relationships.bar.data.id=1,2,3
的要求。请参阅下面的代码以获取/components/foo-bar.js
。我的问题是如何创建一个 foo 记录并将这些 id 声明到它的关系中?
/components/foo-bar.js
foo.setProperties({
bar: [1213,1231]
});
/models/foo.js
import DS from 'ember-data';
export default DS.Model.extend({
bar: DS.belongsTo('bar', { async: true }),
});
/models/bar.js
import DS from 'ember-data';
export default DS.Model.extend({
foos: DS.hasMany('foo', { async: true }),
});
您的Foo
模型使用belongsTo
,表示它可以与单个bar
相关。你会像保存那个栏一样
/components/foo-bar.js
let bar = this.store.createRecord('bar', {
id: 1213
});
foo.setProperties({
bar: bar
});
如果您希望能够将一个foo
设置为与许多bar
模型相关,则可以使用hasMany
并对其进行设置,如下所示:
/components/foo-bar.js
let bar1 = this.store.createRecord('bar', {
id: 1213
});
let bar2 = this.store.createRecord('bar', {
id: 3456
});
foo.setProperties({
bars: [bar1, bar2]
});
无论哪种情况,都应将实际模型bar
设置到foo
上,而不仅仅是 ID。