Ember.js 保存一个有很多服务的模型,我的ID在哪里

Ember.js 保存一个有很多服务的模型,我的ID在哪里,ember.js,coffeescript,ember-data,Ember.js,Coffeescript,Ember Data,我有下面的型号 MyApp.Company = MyApp.User.extend companyName: DS.attr('string') companyEmail: DS.attr('string') cvr: DS.attr('number') services: DS.hasMany('service') 它有很多服务 MyApp.Service = DS.Model.extend name: DS.attr('string') description: D

我有下面的型号

MyApp.Company = MyApp.User.extend
  companyName: DS.attr('string')
  companyEmail: DS.attr('string')
  cvr: DS.attr('number')
  services: DS.hasMany('service')
它有很多服务

MyApp.Service = DS.Model.extend
  name: DS.attr('string')
  description: DS.attr('string')
  content: DS.attr('string')
  avatar: DS.attr('string')
  smallAvatar: DS.attr('string')
  serviceField: DS.belongsTo('serviceField')
  companies: DS.hasMany('company')
现在我有了一个面板,用户在其中向他的公司添加服务,最后按下保存按钮,在我的控制器中触发此操作

saveAccount: ->
  @get('model').save()
现在我的问题是,随着新服务的添加,我希望put请求中的数据看起来像这样

company: {
company_email: "fsfsdfsdf"
company_name: "Elvar's biks"
cvr: 389298498
services: [1,4,2]
}
但“服务”缺失;我是否期望一个错误的json结构?如果是的话,我应该如何解决这个问题


可能值得注意的是,所有对象都是在创建之前创建的,因此我从现有服务中选择的客户机,我只需要创建关系服务器端。

看起来您正在尝试设置多对多关系,因此您需要在此处使用桥接表/模型

首先,创建一个名为
CompanyService
的新模型:

MyApp.CompanyService = DS.Model.extend
  company: DS.belongsTo 'company'
  service: DS.belongsTo 'service'
接下来,更新您的公司模型:

MyApp.Company = MyApp.User.extend
  companyName: DS.attr('string')
  companyEmail: DS.attr('string')
  cvr: DS.attr('number')
  companyServices: DS.hasMany('companyService', {async:true})
然后,更新您的服务模型:

MyApp.Service = DS.Model.extend
  name: DS.attr('string')
  description: DS.attr('string')
  content: DS.attr('string')
  avatar: DS.attr('string')
  smallAvatar: DS.attr('string')
  serviceField: DS.belongsTo('serviceField')
  companyServices: DS.hasMany('companyService', {async:true})
从这里开始,您需要修改任何后端设置(Rails?),以适应这种新的模型关系


希望有帮助

您是否对属性使用
{async:true}
?它被切断了,看不到结束部分。不,我已经更新了问题,缺少)是完整的服务模式吗?现在,为了简单起见,我缩短了它:)@MartinElvar为什么你用
MyApp.User.extend
而不是
DS.model.extend
定义公司模式?这是正确的,我正在尝试做一个多对多,我遵循了灰烬页面上的指南。因此,如果我使用这种方法处理它,我应该保存公司服务,而不是保存模型本身。并改为使用api来持久化companyServices。似乎有很多工作要做,但愿我能按我想要的方式工作。:)这看起来是一个可能的修复,当然还没有合并。