我有一个顶级会话对象,可以有很多扬声器.
我的REST ish端点允许我得到所有的会话像这样
/会话/
我可以得到所有的演讲者给一个给定的会话像这样
/会话/ 1 /扬声器/
使用当前版本的ember数据,我可以看到它正试图用这个url找到所有的扬声器
/扬声器/
使用下面的数据模型
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'),session: DS.belongsTo('CodeCamp.Session',{nested: true}) });
我添加了“嵌套:true”部分,因为我想要使用ember-data来构建所需的
/会话/%@ /扬声器/
但这没有发生 –
我知道我可以手动定义一个url
CodeCamp.Speaker.reopenClass({ url: 'sessions/%@/speakers/' });
但是在这样做的时候,我需要在基本的REST适配器中滚动我自己的“buildURL”方法,以便查找这样的格式,并在必要时添加父ID(如果可能的话,我宁愿不这样做)
解决方法
{nested:true}还不是一个功能.
The pull request is still open.
覆盖&使用适配器的findQuery()
通过这样一个URL进行GET请求.
另外,如果您的服务器是Rails(也许这适用于其他框架),可以通过将父ID作为查询字符串参数传递来将请求URL保持为单级:
/speakers?session_id=1