我们说我有一个JSON API,我可以访问两个模型:cats
和dogs
。但是,在我的Ember应用程序中,我只有一个模型:animals
。
虽然每次save()
animal
cat
时,如果我在任何其他模型中收到dog
链接,则会以animal
的身份发布到API它应该由ember-data本地存储为{{1}}。
实现这一目标最连贯的方法是什么?谢谢!
答案 0 :(得分:1)
固定。为了将来参考,可以为模型创建别名,扩展ApplicationSerializer(在这种情况下,我们的模型是animal
,虽然它有一个在API中使用cat
模型的适配器,dog
模型也需要解析为animal
:
App.ApplicationSerializer = DS.ActiveModelSerializer.extend({
typeForRoot: function(root) {
if (root == 'dog' || root == 'dogs') { root = 'animal'; }
return this._super(root);
}
);
答案 1 :(得分:0)
您应该能够通过自定义REST适配器来实现您想要的功能。具体来说,查看overriding the buildURL
method以检测传递的记录的类型,并根据确定是否应将此特定模型持久保存到cats
端点或{{1}的逻辑来构造要传递的URL。终点。