モデルがあり、house
と呼び、もう1つはkitchen
です。 house
モデルを保存しようとすると、その関係belongsTo()
〜kitchen
が破棄されます。Ember.js:レコードを保存すると、belongsTo関係が破棄されます
export default DS.Model.extend({
name: DS.attr('string')
});
が、私はそれを埋める、私の記録を作成し、最終的にそれを保存しています:
export default DS.Model.extend({
name: DS.attr('string'),
kitchen: DS.belongsTo('kitchen', {polymorphic:true}),
});
kitchen
は非常に単純なモデルである:
house
はそのようなkitchen
へbelongsTo()
関係を持っています成分。これはそれに関連する機能です。
createHouse() {
this.createKitchen().then(() => { // this will create, fill and save a kitchen record
this.createAnSetHouse(); // this will create and fill a house record as 'house'
console.log(this.get('house').get('kitchen')); // this properly get the kitchen record
this.get('house').save().then(() => {
console.log(this.get('house').get('kitchen')); // and here the relationships is set to null ???
/* rest of the function */
}
あなたは上記のスニペットで見ることができるように、一度、私はjhouse
レコードを保存、関係は、それが適切に事前に設定した場合でも、nullに設定されています。
"content": { "attributes": { "kitchen_id": null, "name": "myName" } }
任意のヒントが高く評価されています
EDITは
私はそれを言及している必要があります、これは私のサーバーが受信ペイロードです。
FINAL EDIT
私はに私の約束といくつかの奇妙なことをやった、それを解決する方法を考え出したが、私はkitchen
レコードがまだ保存されていなかった場合でもresolve()
たEmber.RSVP.defer()
を持っていました。..
約束事で奇妙なことをしないと、上のスニペットはほとんどの人にとってうまくいくはずです。
、これは私のサーバーが受信ペイロードである: ' "内容":{ は、 "属性":{ "kitchen_id":ヌル、 "名": "がmyName" } } ' – maje
私は 'キッチン' IDを取得し、IDだけを押して、バックエンドがそれを処理するアダプタを使用しています。 – maje
コンソールの場合、最初の呼び出しは 'content:Class {__ember1510241294711:" ember1457 "、store:Class、_internalModel:internalModel、currentState:{...}、...}、そして2番目の呼び出し:' content:null'を返します。 – maje