2015-02-08 49 views
0

給定兩個模型: Message.js和User.js, 嘗試使用Ember.js創建記錄時,我不斷收到以下錯誤。任何Ember.js嚮導都知道我的代碼有什麼問題?創建帶有belongsTo關係的記錄錯誤 - Ember.js

//錯誤:斷言失敗:您只能添加一個「用戶」記錄到這種關係

App.Message = DS.Model.extend({ 
title: DS.attr(), 
body: DS.attr(), 
user: DS.belongsTo('user'), 
}); 

App.User = DS.Model.extend({ 
    first_name: DS.attr(), 
    last_name: DS.attr(), 
    email: DS.attr(), 
    password: DS.attr(), 
    messages: DS.hasMany('message'), 
}); 


App.NewMessageController = Ember.Controller.extend({ 
need: ['application'], 
thisUserID: Ember.computed.alias('controllers.application.userID'), 

actions: { 
    save: function() { 
     // Prints -> 'thisUserID' -- all is fine here 
     console.log('The user id from new-letter is: '+this.get('thisUserID')); 

     var store = this.store; 
     //Prints -> <DS.PromiseObject:ember433> -- Strange? 
     console.log("Checking the store: "+store.find('user', this.get('thisUserID'))); 

     var newMessage = store.createRecord('message', { 
      title: this.get('title'), 
      body: this.get('body'), 
     }); 
     newMessage.save(); 

     // Prints-> Error: Assertion Failed: You can only add a 'user' record to this relationship 
     var user = store.find('user', this.get('thisUserID')).then(function(user) { 
      newMessage.set('user', user); 
     }); 
    } 
} 
}); 

回答

3

我不是一個嚮導,但似乎你想設置的用戶記錄一個消息: newMessage.set('user', user);

相反,你應該添加消息: user.get('messages').addObject(newMessage);

+0

我說 'user.save();'根據你的建議和工作。但是,它存儲與信函記錄相同的「id」。我猜這是預期的效果? – xxyyzz 2015-02-08 21:47:55

相關問題