1
我很努力地理解Ember Data(Beta 11)中的多態關係如何蠕蟲,並且無法找到有關如何設置它們的更新信息以及JSON有效負載中的預期內容。我正在嘗試創建項目的訂閱源(認爲Facebook訂閱源),其中在訂閱源中有不同類型的項目。我的模型看起來如下所示。Ember Data中的HasMany多態關係
App.Feedable = DS.Model.extend({
activities: DS.hasMany('activity')
});
App.Activity = DS.Model.extend({
feedable: DS.belongsTo('feedable', { polymorphic: true, async: false })
});
App.MemberLikeShare = DS.Model.extend({
status: DS.attr('string')
});
App.PhotoShare = DS.Model.extend({
status: DS.attr('string'),
photo: DS.attr('string')
});
當我做了取在/activities
我發回JSON,看起來像下面這樣:
{
activities: [
{
id: 1,
feedable: { id: 1, type: 'memberLikeShare' }
},
{
id: 4,
feedable: { id: 4, type: 'memberLikeShare' }
},
{
id: 5,
feedable: { id: 5, type: 'photoShare' }
}
],
member_like_shares: [
{
id: 1,
status: 'Foo'
},
{
id: 4,
status: 'Bar'
}
],
photo_shares: [
{id: 5, photo: 'example.jpg'}
]
}
在運行此我得到這樣一個錯誤:
You can only add a 'feedable' record to this relationship Error: Assertion Failed: You can only add a 'feedable' record to this relationship
我假設我的關係錯了,或者我發錯了JSON?
您是否必須使用ActiveModelAdapter來完成這項工作,或者您能否使用RESTAdapter? – Chad 2014-11-02 18:50:04
沒關係。如果有人正在尋找一個工作示例,這裏是一個JSBin。 http://emberjs.jsbin.com/jipomodugo/1/edit – Chad 2014-11-02 18:56:25