クラス継承との hasMany 関連付けで Ember Data を動作させようとしています。
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
猫と犬のインスタンスをfor each Personに追加できるようにしたいと思います。
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 Data ビルドを実行しています。