【发布时间】:2015-02-19 01:22:54
【问题描述】:
假设我有两个 Ember Data 模型:competition 和 participant
我的竞赛模型存储以下数据:date、first、second 和 third。 first、second 和 third 属性将存储第一、第二和第三名的唯一竞争对手的 ID。
我的participant 模型存储以下数据:name、surname 和 competition
参与者只参加一场比赛,因此participant 模型不需要competition 上的hasMany 关系。
如何在 Ember Data 中对此进行建模?
以下是我认为可行的方法:
// app/models/competition.js
export default DS.Model.extend({
rev: DS.attr('string'),
date: DS.attr('date', {defaultValue: function() { return new Date(); }}),
first: DS.belongsTo('participant'),
second: DS.belongsTo('participant'),
third: DS.belongsTo('participant')
});
// app/models/participant.js
export default DS.Model.extend({
rev: DS.attr('string'),
name: DS.attr('string'),
surname: DS.attr('string'),
competition: DS.belongsTo('competition')
});
问题是participant.js 上的competition 键需要显式逆向,并且无法知道它可能与competition 上的三个键中的哪一个有关。
我应该如何指定我的倒数? competition 和 participant 模型都需要显式逆吗?如果是这样,它们应该是什么?这种数据结构在 Ember Data 中是否可行?我应该完全使用不同的方法吗?
请权衡一下。我已经在脑海中扭转了这个问题几个小时,但我的解决方法都没有成功。
【问题讨论】:
-
你的响应 json 是什么样的?
-
没有 JSON 可言。我正在使用 PouchDB,所以我不需要序列化任何东西。当我查看 localstorage 数据库时,所有的 belongsTo 字段都是空的。
标签: ember.js ember-data ember-cli