0

Emberjs 是否支持单向关系?考虑一下我想用三个模型存储有关食谱的信息:

  • Ingredient
    • 一直存在。给出一个namedescription
    • 没有任何东西“拥有”一种成分,它们也不应该在新的引用上被复制,或者在引用被破坏时被破坏。他们只是
  • IngredientAddition
    • 由一个Ingredient和信息何时/谁添加成分和数量组成
    • 许多IngredientAddition物品可以使用相同的成分。
  • Recipe
    • 由许多IngredientAddition对象和辅助信息组成。

据我了解,我的模型如下所示:

App.Ingredient = DS.Model.extend({
  name: DS.attr('string'),
  desc: DS.attr('string'),
});
App.IngredientAddition = DS.Model.extend({
  how:  DS.attr('string'),
  qty:  DS.attr('string'),
  recipe: DS.belongsTo('App.Recipe'),
});
App.Recipe = DS.Model.extend({
  desc: DS.attr('string'),
  ingredients: DS.hasMany('App.IngredientAddition'),
});

IngredientAddition但是,这并没有捕捉到和之间的关系IngredientDS.hasMany似乎不合适,因为每个 IngredientAddition 都只有一个Ingredient. DS.belongsTo是不合适的,因为Ingredient生命周期不是由IngredientAddition.

我如何捕捉这些信息?我查看了源代码,除了andember-data之外找不到任何关系类型。hasManybelongsTo

4

1 回答 1

0

我想你想建立belongsTo关系IngredientAddition

App.IngredientAddition = DS.Model.extend({
  how:  DS.attr('string'),
  qty:  DS.attr('string'),
  ingredient: DS.belongsTo('App.Ingredient'),
  recipe: DS.belongsTo('App.Recipe'),
});

这样,IngredientAddition就有一个ingredient_id指向相关的底层IngredientIngredient“拥有” an的语义IngredientAddition很奇怪,但这是产生您所描述的关系的方式。

于 2013-03-06T21:49:38.530 回答