2013-07-08 24 views
0

我有一個Rails的API,它具有以下JSON響應:Ember.js找到()使用參數

/用戶/ 1

{ 
    "id": 1, 
    "email": "[email protected]" 
} 

/用戶/ 1 =嵌入作用,店內

{ 
    "id": 1, 
    "email": "[email protected]" 
    "store": { 
     "id": 1, 
     "name": "Apple Store" 
    }, 
    "role": { 
     "id": 1, 
     "name": "Owner" 
    } 
} 

是否可以決定哪些關係與Ember.js獲取 - App.User.find(1)?我已經嘗試了App.User.find({id:1,embed:'role'}),但它將GET請求作爲/ users?id = 1 & embed = role發送到Rails控制器中的索引操作。

有沒有更好的方法來處理這個問題?我可以完全訪問修改API。在每個API請求上加載似乎都是過度的,如果我可以根據查詢參數來決定關係,我會很棒。

回答

2

有沒有更好的方法來處理這個問題?

我想最好的選擇假設你正在使用的RESTAdapter應該是定義你的側載嵌入式,例如:

DS.RESTAdapter.map('App.User', { 
    role: { embedded: 'always' }, 
    store: { embedded: 'always' } 
}; 

這樣rolestore保存嵌入在相同的記錄並因此不會導致單獨的GET請求。

的嵌入式的兩個可能的值是:

總是:加載時,子記錄被嵌入,並保存嵌入在相同的記錄。

加載:加載時嵌入子記錄,但應保存爲獨立記錄。爲了這個工作,子記錄必須有一個ID。

希望它有幫助。