这个对我来说有点棘手,因为它根本没有包含在文档中。
我有四种模式:
App.Dog = DS.Model.extend();
App.Cat = DS.Model.extend();
App.Food = DS.Model.extend();
App.Toy = DS.Model.extend();
dog
和cat
都有很多food
和许多toys
。另一方面,food
和toy
的单个实例只能属于一个dog
或cat
(因此它是hasMany
- ish与动物的关系方和belongsTo
- 项目方面的ish。
任何提示如何使用多态关系在Ember中执行此操作?或者除了多态关系之外,还有更好的方法来实现这个目标吗?
我应该在控制器中实现哪些代码来创建属于food
或toy
的新dog
或cat
记录?
谢谢!
答案 0 :(得分:1)
基于this slideshow,类似于:
App.Animal = DS.Model.extend({
food: DS.hasMany('App.Food', { polymorphic: true }),
toys: DS.hasMany('App.Toy', { polymorphic: true })
});
App.Dog = App.Animal.extend(/* .... */);
App.Cat = App.Animal.extend(/* .... */);
App.Food = DS.Model.extend({
owner: DS.belongsTo('App.Animal', { polymorphic: true })
});
App.Toy = DS.Model.extend({
owner: DS.belongsTo('App.Animal', { polymorphic: true })
});