Ember-data (v1.0.0-beta.2) の最新バージョンを使用しています。Ember.JS モデルの更新に問題があります。このケースを最も単純化したモデルに減らしました
App.Post = DS.Model.extend({
subject: DS.attr('string'),
author: DS.belongsTo('user')
});
App.User = DS.Model.extend({
name: DS.attr('string'),
msg: DS.attr('string')
});
.save() メソッドを使用して保存すると、promise が正常に解決されます。問題を表示するためにログを追加しました
App.IndexController = Ember.ObjectController.extend({
actions: {
save: function() {
console.log("Author name before: " + this.get("model").get("author").get("name"));
this.get("model").save().then(function(m) {
console.log("Author object after: " + m.get("author"));
console.log("Author name after: " + m.get("author").get("name"));
});
}
}
});
保存後、author プロパティはオブジェクトではなく、数字の 1 になります。
サーバーから返される JSON は常に同じです。これを JSbin で実証できるようにするには、DS.RESTAdapter.ajax を上書きする必要がありました。
http://jsbin.com/EWUSEkA/3/edit?html,js,output
問題は、Ember をサイドロードする方法、またはオブジェクトを保存した後にオブジェクトの関係を解決する方法です。