9

我正在尝试让 Ember Data 使用 hasMany 与类继承的关联。

Ember 代码示例:

var Person = DS.Model.extend({
  name: DS.attr('string'),
  animals: DS.hasMany('Animal')
});

var Animal = DS.Model.extend({
  name: DS.attr('string'),
  owner: DS.belongsTo('Person')
});

var Dog = Animal.extend({
  isBarking: DS.attr('boolean')
});

var Cat = Animal.extend({
  isMeowing: DS.attr('boolean')
});

var fred = Person.createRecord({name: 'Fred'});
var ed = Dog.createRecord({name: 'Ed', isBarking: true});
// This gives:
// Error: assertion failed: You can only add records of Animal to this relationship.
fred.get('animals').pushObject(ed);

我希望能够animals为每个人添加猫和狗实例。

Mongoid 为 Ruby/Rails 提供的内容给出了如何实现它的示例:

http://mongoid.org/en/mongoid/docs/documents.html#inheritance

我知道 Mongoid 的继承实现(_type每个记录的自定义属性)可能对于 Ember Data 来说过于具体而无法实现。

如果有人可以给我一个提示是否可以使用 Ember Data 进行上述操作,如果可以,我将如何实现这一点,将不胜感激。如果这是 Ember Data 根本不支持的东西,那也是我想要的答案。

我正在运行 Ember 1.0.0-pre4 和几天前构建的自定义 Ember 数据。

4

1 回答 1

2

多态性尚未得到官方支持,但有一个长期的pull request可以准确地提出您正在寻找的功能。

于 2013-03-03T03:21:03.683 回答