2013-01-15 40 views
0

我有以下兩種模式:如何更新燼數據關係

App.Domain = DS.Model.extend({ 
    name: attr('string'), 
    users: DS.hasMany('App.User') 
}); 
App.User = DS.Model.extend({ 
    user: attr('string'), 
    domain: DS.belongsTo('App.Domain') 
}); 

Domain被加載在User記錄包埋:

DS.RESTAdapter.map('App.User', { 
    domain: { embedded: 'load' } 
}); 

如果我得到的JSON數據,餘燼數據將正確解釋。

GET /users 

{ 
    "users": [ 
     { 
      "id": 1, 
      "domain_id": 1, 
      "user": "test", 
      "domain": { 
       "id": 1, 
       "name": "example.com" 
      } 
     } 
    ] 
} 

我的領域是這樣的:

GET /domains 

{ 
    "domains": [ 
     { 
      "id": 1, 
      "name": "example.com" 
     }, 
     { 
      "id": 2, 
      "name": "example.org" 
     } 
    ] 
} 

現在我的問題:

如果我在一個user記錄domain_id FOREIGNKEY將不會被更新更新domain。 如果我嘗試提交這個髒記錄,那麼ember會將舊的domain_id發送到服務器。我的代碼有什麼問題?我能不能通過這種方式更新belongsTo字段來更新foreignKey

>>var user = App.User.find(1); 
>>user.get('domain.id') 
1 
>>var newDomain = App.Domain.find(2); 
>>newDomain.get('id') 
2 
>>user.set('domain', newDomain) 
>>user.get('isDirty') 
true 
>>user.get('domain.id') 
2 
>>user.get('domain_id') 
1 

回答

0

我認爲你需要先提交domain_id進行更新。