2012-10-06 50 views
10

我有一個頂級會話對象,它下面可能有許多揚聲器。呃數據是否真的支持嵌套的網址?

我的REST上下的端點可以讓我所有的會議,像這樣

/會話/

我可以得到一個給定的會話中的所有揚聲器,像這樣

/會話/ 1 /音箱/

與Ember數據的當前版本,我可以看到它試圖找到所有的揚聲器,這個網址

/揚聲器/

使用下面

CodeCamp.Session = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    speakers: DS.hasMany('CodeCamp.Speaker',{nested: true})               
}); 

CodeCamp.Speaker = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    session: DS.belongsTo('CodeCamp.Session',{nested: true}) 
}); 

數據模型我添加了 「嵌套:真」 的一部分,因爲我想燼數據來構建所需的

/會話/%@ /揚聲器/

但是這並沒有發生 -

我知道我可以定義一個URL手動

CodeCamp.Speaker.reopenClass({ 
    url: 'sessions/%@/speakers/' 
}); 

但是在這樣做時,我需要在基本REST適配器中滾動我自己的「buildURL」方法,以便它查找這樣的格式並在必要時添加父ID(並且如果可能,我寧願不這樣做)

呃數據是否支持這種開箱即用的方式,或者我會被迫自己寫大量的代碼?

回答

7

{nested: true}還不是功能。 The pull request is still open.

覆蓋&使用適配器的findQuery()通過這樣的URL發出GET請求。

另外,如果你的服務器的Rails(也許這適用於其他框架),可以保持請求URL單級,通過將母ID作爲查詢字符串PARAM:

/speakers?session_id=1 
+0

感謝 - 我現在可以使用它作爲解決方法(希望在最終的ember.js 1.0版本或稍後的版本中看到此內容) –