如何使用ember-data设置多态关系

时间:2014-05-29 16:41:36

标签: ember.js ember-data

因此,假设食谱中含有多种不同量的成分。

食谱模型

var Recipe = DS.Model.extend({
    name: DS.attr('string'),
    ingredients: DS.hasMany('ingredient')
});

成分模型

var Ingredient = DS.Model.extend({
    name: DS.attr('string'),
    recipes: DS.hasMany('recipe'),
    // amount?
});

因此每种成分的含量取决于配方。然而,就其本身而言,该成分不会有数量。

您将如何建模这些数据?现在我正在使用FixtureAdapter,直到我完成界面构建。

使用Ember 1.5.1Ember-Data 1.0.0-beta.7+canary.b45e23ba

1 个答案:

答案 0 :(得分:0)

回答你的第一个问题:

像这样定义模型

App.Comment = DS.Model.extend({
  message: DS.belongsTo('message', {
    polymorphic: true
  })
});

该属性需要一个额外的属性propertyType,定义关系类型

{
  "message": 12,
  "messageType": "post"
}

https://github.com/emberjs/data/blob/master/TRANSITION.md#polymorphic-relationships

现在回答第二个问题,不确定是否需要多态。我可能只包括加入记录

var RecipeIngredient = DS.Model.extend({
    amount: DS.attr(),
    ingredient: DS.belongsTo('ingredient')
});

var Recipe = DS.Model.extend({
    name: DS.attr('string'),
    ingredients: DS.hasMany('recipeIngredient')
});