レコードが (偽の) データベースにあるかどうかに応じて、Ember-CLI-Mirage で異なる応答を返そうとしています。しかし、404 応答コードを返しても、有効な JSONAPI 応答なしで応答を返すと、アダプター エラーが発生し続けます。
this.get('/users/:id', (db, request) => {
let user = db.users.find(request.params.id);
if (user) {
return jsonapi.serializeOne(user); // works
} else {
return new Mirage.Response(404, null, null);
}
});
これはルートです:
import Ember from 'ember';
export default Ember.Route.extend({
errorRedirectTo: 'users',
model: function(){
return this.store.createRecord('user');
}
});
エラーメッセージ:
Error while processing route: user Adapter operation failed Error: Adapter operation failed
at new Error (native)
at Error.EmberError (http://localhost:4200/assets/vendor.js:26266:21)
at Error.ember$data$lib$adapters$errors$$AdapterError (http://localhost:4200/assets/vendor.js:126403:50)
at ember$data$lib$system$adapter$$default.extend.handleResponse (http://localhost:4200/assets/vendor.js:128081:16)
at ember$data$lib$system$adapter$$default.extend.ajax.Ember.RSVP.Promise.hash.error (http://localhost:4200/assets/vendor.js:128177:33)
at jQuery.Callbacks.fire (http://localhost:4200/assets/vendor.js:3350:30)
at Object.jQuery.Callbacks.self.fireWith [as rejectWith] (http://localhost:4200/assets/vendor.js:3462:7)
at done (http://localhost:4200/assets/vendor.js:9518:14)
at Object.jQuery.ajaxTransport.send.callback (http://localhost:4200/assets/vendor.js:9920:8)
at Object._readyStateChange (http://localhost:4200/assets/vendor.js:69915:14)