2016-03-30 32 views
1

このトピックに関する他の多くの投稿は2歳以上ですので、ここでは潜在的に簡単な質問になります。Emberデータ依存キーが定義されていません

Emberのデータ関係を使用して、 'bizinfo'レコードが 'user'レコードに属しています。シンプルだが、私はそれの最悪の時を過ごしている。アプリ/モデル/ bizinfo.jsで

私はラインを持っている:

'ownedBy': DS.belongsTo('user') 

そして、私が検証し、モデルを保存し、私のルートで

、私は次のコードを持っている:

user_id: Ember.computed(function(){ 
    return `${this.get('session.data.authenticated.user_id')}`; 
    }), 

    user: Ember.computed(function(){ 
    return this.store.findRecord('user', this.get('user_id')); 
    }), 

    model(params){ 
    return this.store.createRecord('bizinfo', {'ownedBy': this.get('user')}); 
    }, 
をこの時点で

私は、データオブジェクトのbizinfo "を見てエンバーインスペクタに行けば、私はbelongsToのタブの下に以下を参照してください。

ownedBy : <(subclass of Ember.ObjectProxy):ember1053> 

​​

そして、私はmodel.toJSON()ログを見て:だからここ

submit() { 
    let model = this.currentModel; 
    console.log(model.ownedBy); 
    console.log(`what does the model look like?`); 
    console.log(model.toJSON()); 
    model.validate().then(({model, validations}) => { 
    if (validations.get('isValid')) { 
     this.setProperties({ 
     showAlert: false, 
     isRegistered: true, 
     showCode: false 
     }); 
     let success = (response) => { 
     console.log(`Server responded with ${response.toJSON()}`); 
     }; 

     let failure = (response) => { 
     console.log(`Server responded with ${response}`); 
     }; 
     model.save().then(success, failure); 
    } else { 
     this.set('showAlert', true); 
    } 
    this.set('didValidate', true); 
    }, (errors) => { 
    console.log(`errors from failed validation: ${errors}`); 
    }); 
}, 

最初にconsole.logステートメントの結果である:ここに

は、自分の行動を提出からコードがあります私は参照してください

ownedBy: null 

ここで間違っているのを誰でも見ることができますか?それはレコードの作成声明ですか?私はこのような「ユーザパラメータとしてだけでIDを提出するなど、異なる順列(の多くを試してみました。

答えて

2

findRecordは約束を返します。問題を回避する簡単な方法は、

model(params){ 
    return this.store.findRecord('user', this.get('user_id')) . 
    then(ownedBy => this.store.createRecord('bizinfo', {ownedBy}); 
} 

この意志でありますfindRecordが解決するのを待ってから、解決された値を持つ新しいレコードをownedByプロパティとして返してください。

+1

Woohoo!あなたは救世主虎さんです。m(_ _)m –

関連する問題