の設定 "アダプターは、それが無効であったため、コミット拒否" ディンゴのAPI バックエンドの検証は常に
- 、。 7
- アダプタ=エンバーデータRESTAdapter
通報
私は最初のEmberアプリケーションでバックエンド検証エラーを処理しようとしています。
{
"message":"Couldn't save client",
"errors":{
"name":["The name field is required."],
"email":["The email field is required."]
},
"status_code":422
}
を試しました(と失敗):
Error: The adapter rejected the commit because it was invalid
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:69564:50)
at Error.ember$data$lib$adapters$errors$$InvalidError (http://localhost:4200/assets/vendor.js:69637:52)
at ajaxError (http://localhost:4200/assets/frontend.js:16:24)
at ember$data$lib$system$adapter$$default.extend.ajax.Ember.RSVP.Promise.hash.error (http://localhost:4200/assets/vendor.js:71327:31)
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 XMLHttpRequest.jQuery.ajaxTransport.options.send.callback (http://localhost:4200/assets/vendor.js:9920:8)
バックエンドからの応答が422処理不能エンティティヘッダを持っており、内容は次のとおりです。エラーがサーバーから返されたとき、私はこのエラーを取得しますRESTAdapter Oへの拡張ソリューション
Ember data Rest adapter error handling not working
ajaxError機能verride、鉱山は現在、次のようになります。メソッドを保存するcatchステートメントを追加ajaxError: function(jqXHR) { var error = this._super(jqXHR); if (jqXHR && jqXHR.status === 422) { var jsonErrors = Ember.$.parseJSON(jqXHR.responseText).errors; return new DS.InvalidError(jsonErrors); } else { return error; } }
、自分の行動を救う現在:ActiveModelAdapterアウト
save() { var self = this; function transitionToPost(post) { self.transitionToRoute('clients.show', post); } function failure(reason) { // handle the error console.log(reason); return false; } this.get('model').save().then(transitionToPost, failure).catch(failure); }
テスト - わかりません私はこれを達成することを期待していましたが、私は絶望的でした。結果は変わりませんでした。
エンバードキュメント(http://guides.emberjs.com/v1.13.0/models/creating-updating-and-deleting-records/#toc_promises)
あなたは上記の私のコントローラのコードで見ることができるように、私は実際にあなたが見ていると助言することができますベース
としてこれを使用?助けをあらかじめありがとう!
[OK]をので、私は燃えさしデータをアンインストールし、それを再インストールしてから、すべてが正常に動作し始めた:あなたがしようとした場合、このモデルで
ServerErrorsMixin
から延長することを忘れないでください! – AshleyVee