1

1 つの要求で関連するレコードを含むレコードを作成しようとしています。ネストされたレコードの一部に検証エラーがある場合、そのレコードの適切なエラーにアクセスしたいと思います。json-api アダプターを使用していますが、バックエンドからのエラーの形式は何ですか? 私はこのようなことを試みていますが、運はありません:

{"errors":[
  {
    "detail": "can't be blank",
    "source": {
      "pointer":"data/relationships/steps/0/data/attributes/est_threshold"
    }
  }
]}

この行によると、何らかの方法で実装する必要があります: https://github.com/emberjs/data/blob/master/addon/adapters/errors.js#L7

何か案は?

4

2 に答える 2

0

そのため、まだ実装されていないようです。モデルミックスインでそれを行うちょっとハックな方法を見つけました:

`import Ember from 'ember'`

RelatedErrors = Ember.Mixin.create

  save: ->
    @_super().catch (resp) =>
      resp.errors.forEach (err) =>
        if [_, rel, idx, attr] = err.source.pointer.match /^data\/relationships\/(\w+)\/(\d+)\/data\/attributes\/(\w+)$/
          @get(rel).objectAt(idx).get('errors').add(attr, err.detail)

`export default RelatedErrors`

ただし、addDS.Errors は非推奨であるため、これはまだ完全な解決策ではありません。また、関連するモデルの無効な状態は、各コミットの前にクリアする必要がありますが、これは今のところ発生していません。

于 2016-04-06T15:45:31.817 に答える
0

データ内のネストされたレコードをサイドロードする必要があります。ember ガイドに記載されている構造の例は次のとおりです。

{
  "post": {
    "id": 1,
    "title": "Node is not omakase",
    "comments": [1, 2, 3]
  },

  "comments": [{
    "id": 1,
    "body": "But is it _lightweight_ omakase?"
  },
  {
    "id": 2,
    "body": "I for one welcome our new omakase overlords"
  },
  {
    "id": 3,
    "body": "Put me on the fast track to a delicious dinner"
  }]
}

https://guides.emberjs.com/v1.10.0/models/the-rest-adapter/

于 2016-04-04T17:39:09.297 に答える