1
我在使用ember-data rev12實現我所瞭解的多態關係時遇到了困難。多態has has和belongsTo中的關係ember-data rev 12
我有以下型號:
App.Project = DS.Model.extend
lists: DS.hasMany('App.List', { polymorphic: true })
App.Proposal = DS.Model.extend
lists: DS.hasMany('App.List', { polymorphic: true })
App.Employee = DS.Model.extend
lists: DS.hasMany('App.List', { polymorphic: true })
App.List = DS.Model.extend
name: DS.attr('string')
#project: DS.belongsTo('App.Project', { polymorphic: true })
,我試圖創建一個從項目路由器像這樣一個新的列表。
App.ProjectRoute = Ember.Route.extend
events:
newList: (project) ->
lists = project.get('lists')
list = App.List.createRecord(name: 'list1')
lists.pushObject(list)
@store.commit()
但是對服務器的請求是錯誤地設置了多態鍵。
我期待有效載荷的樣子:
{ list: { name: list1, listable_type: project, listable_id: 100 } }
不過的了:
{ list: { name: list1, project_type: project, project_id: 100 } }
我缺少什麼?有沒有一種方法來定義多態類型或關鍵?
這裏是我暫時的黑客
https://gist.github.com/arenoir/5409904
好的,我添加了一些更多的模型,我的例子。我想唯一的辦法是爲每個父母創建一個列表模型。唯一的困擾是,如果我爲每個例如(App.ProjectList listable:belongsTo'Project',{poly:y})創建一個單獨的列表模型,這些鍵是正確的,但是json根和url是錯誤的。例如(put =「api/project_lists」payload = {project_list:{listable_type:project,listable_id:100})。必須有一種方法來使用type和type_id設置hasMany多態列表。感謝您的洞察力。 –
這樣的作品,但有一些問題。你如何定義多個多態的hasMany關係,例如項目和員工都有很多任務。是否可以從可列表和任務類擴展? –
也我的後端(導軌)預計類型被camelcased。是否可以指定類型?listable_type:'project'實際上應該是listable_type:'Project' –