2014-05-29 3 views
1

Так что, скажем, у рецепта есть несколько ингредиентов разного количества.Как настроить полиморфные отношения с использованием данных ember

Рецепт Модель

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.1 и Ember-Data 1.0.0-beta.7+canary.b45e23ba.

ответ

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') 
}); 
+0

Чтобы быть ясным, атрибут суммы для ингредиента имел бы отношение к рецепту? И в полезной нагрузке я бы также включил amountType? –

+0

Извините, я ответил, затем понял, что пропустил часть вашего рецепта, обновленную выше. – Kingpin2k

+0

с использованием записи о соединении кажется гораздо более простым. Даже не думал об этом –

Смежные вопросы