Javascript 余烬创建一个多态记录
我正在尝试为具有多态关系的模型创建一个记录 模型如下:Javascript 余烬创建一个多态记录,javascript,ruby-on-rails,ember.js,polymorphism,ember-data,Javascript,Ruby On Rails,Ember.js,Polymorphism,Ember Data,我正在尝试为具有多态关系的模型创建一个记录 模型如下: App.SupportedTransportationMethod = DS.Model.extend({ resource: DS.belongsTo('resource', { polymorphic: true }), transportationMethod: DS.belongsTo('transportationMethod') }); 我试图创建记录的模型是: App.Contact = DS.Model.exten
App.SupportedTransportationMethod = DS.Model.extend({
resource: DS.belongsTo('resource', { polymorphic: true }),
transportationMethod: DS.belongsTo('transportationMethod')
});
我试图创建记录的模型是:
App.Contact = DS.Model.extend({
supportedTransportationMethods: DS.hasMany('supportedTransportationMethod', { async: true }),
companyName: DS.attr('string')
});
在这里,我尝试创建一个记录:
supportedTransportationMethod = this.store.createRecord('supportedTransportationMethod', {
transportationMethod: transportationMethod,
resource: contact
});
但我得到一个断言错误:
Uncaught Error: Assertion Failed: You can only add a 'resource' record to this relationship
我有一个jsbin显示这个。如果单击其中一个复选框,则会出现错误。我正在尝试在CheckboxItemController中创建记录
你知道我该如何做到这一点吗?我看了,但是动态创建的时候,你不知道id会是什么,这并不顺利。推也感觉不对
更新:
如果我使用ember data prod版本,它允许创建(因为断言是从prod版本中删除的代码)。所以我想知道这是否是断言代码中的错误
Ember.assert("You can only add a '" + type + "' record to this relationship", !value || value instanceof typeClass);
但是,即使它是从基础模型扩展而来,它也会使用设置为当前模型类型的类型来创建它。还不确定这是不是一件好事
更新2:
下面是另一个jsbin以显示上一次更新的效果 余烬数据期望从同一基类继承记录。在您的例子中,您正在指定
资源
,但似乎没有将其定义为DS.Model
您应该有如下内容:
App.Resource = DS.Model.extend();
App.Contact = App.Resource.extend({
supportedTransportationMethods: DS.hasMany('supportedTransportationMethod', { async: true }),
companyName: DS.attr('string')
});
Ember Data希望这些记录继承自同一基类。在您的例子中,您正在指定
资源
,但似乎没有将其定义为DS.Model
您应该有如下内容:
App.Resource = DS.Model.extend();
App.Contact = App.Resource.extend({
supportedTransportationMethods: DS.hasMany('supportedTransportationMethod', { async: true }),
companyName: DS.attr('string')
});
对于那些使用
ember-cli
的用户,请注意MODEL\u-FACTORY\u INJECTIONS=true
阻止模型继承从ember-Data:1.0.0-beta.11开始为多态关系工作
请参见了解那些使用余烬cli的人,请注意,模型工厂注入=true
阻止模型继承形式在余烬数据:1.0.0-beta.11
时用于多态关系
看啊哈,我明白我的错误了。我一定已经看过你的要点一千遍了,但从来没有注意到你是从基类继承来的。嘘我。。。。它现在起作用了!谢谢你的澄清!啊哈,我明白我的错误了。我一定已经看过你的要点一千遍了,但从来没有注意到你是从基类继承来的。嘘我。。。。它现在起作用了!谢谢你的澄清!这适用于ED#.0.0-beta.12
或更低版本。固定在beta.14
中,适用于ED#.0.0-beta.12
或更低版本。固定在beta.14中