我有以下两种模型:User和Job。
每个user只能有一个作业。
user.attributes和job.attributes看起来如下(1):
(1)
user.attributes = {
id: 1,
name: 'barName',
job_id: 5
}
job.attributes = {
id: 5,
name: 'fooJob'
}让我们假设我想在这两个模型之间建立一个关系:外键应该是job_id
(2)
User = Backbone.ModelRelation.extend({
relations: [
{
type: Backbone.HasOne,
key: 'job_id',
keyDestination: 'job',
relatedModel: User
}
]
});使用代码(2),结果将是:
(3)
user.attributes = {
id: 1,
name: 'barName',
job: job.attributes
}如您所见,来自job_id的user.attributes丢失了。
因此,如果我向服务器发出PUT请求,服务器就会抱怨缺少的job_id属性。
有什么想法吗?我如何修正(3)以使job_id保持在user.attributes (4)中?
(4)
user.attributes = {
id: 1,
name: 'barName',
job_id: 5
job: job.attributes
}参考资料:
发布于 2014-05-30 14:25:07
我的解决办法是改变服务器读取JSON的方式。
因此服务器将读取{user:{job:{id:1}}}而不是{user:{job_id:1}}。
注意,我们包含一个带有id属性的子对象,而不是使用job_id平面属性。
这取决于可以配置的服务器端框架。
https://stackoverflow.com/questions/11338656
复制相似问题