当json响应根密钥是单数时的Ember错误

时间:2013-07-11 06:54:48

标签: json ember.js

当响应json root是单数时,我收到Ember错误。

json回复:

{"subscription": {"id": "1"}}

错误:

Assertion failed: Your server returned a hash with the key subscription but you have no mapping for it

模型:

App.Subscription

如果我在json响应中传递了多个根键subscriptions,它可以正常工作。我不认为我应该这样做,因为单数版本是活动的默认行为 _model_serializers如果只有一个资源要发送。

这是Ember中的一个错误,还是我应该为此做些什么来支持?

1 个答案:

答案 0 :(得分:2)

在适配器上定义复数可能有所帮助。因此,对于名为App.Subscription的模型,这可能如下所示:

App.Adapter = DS.RESTAdapter.extend();
App.Adapter.configure('plurals', { "subscription": "subscription" });

修改

对于.json,一种可能的解决方案可能是挂钩buildURL的{​​{1}}函数并自行添加RESTAdapter后缀。这看起来像这样:

.json

这会向App.Adapter = DS.RESTAdapter.extend({ buildURL: function(record, suffix) { var url = this._super(record, suffix); return url + ".json"; } })

发出请求

希望它有所帮助。