我有以下型号
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结构?如果是这样,我应该如何解决这个问题呢?
可能值得注意的是,所有对象都是事先创建的,所以客户端我从现有服务中选择,我只需要创建关系服务器端。
答案 0 :(得分:0)
看起来您正在尝试建立多对多关系,因此您需要在此处使用桥接表/模型。
首先,创建一个名为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?)。
希望有所帮助!