2017-08-25 4 views
2

Ember Dataを設定してRailsのバックエンドと通信しようとしています。 Emberはエンドポイントの呼び出しに成功し、200と応答データの両方を取得します。問題は、EmberがEmberのモデルの1つに応答データを一致させることができないことです。EmberのデータとRailsとの互換性がありませんJSONのレスポンス:未定義のタイプのリソースが見つかりました

マイモデルコード:

enter image description here

エラー:Encountered a resource with an undefined type.

Iドン以下

export default DS.Model.extend({ 
    user_id: DS.belongsTo('user'), 
    transcription: DS.attr('string'), 
    transcription_time: DS.attr('date'), 
    transcription_date: DS.attr('date'), 
    recording_url: DS.attr('string'), 
    state: DS.attr('string') 
}); 

はエンバーからのエラーと一緒にどのようにバックエンドのリターンデータの画像ですEmberモデルにcreated_atまたはupdated_atを含める必要はありませんか?また、user_idUser Emberモデルを接続する方法をEmberがどのように知っていますか?それがエラーの原因ですか?私はuser_idbelongTo('user')と指定しました。 JSONレスポンスにtypeフィールドを明示的に含める必要がありますか?しかし、これは右のようには思われません。

私は、彼らのguide on modelsとそのguide on serializersを含むいくつかのEmberガイドを読みました。私はカスタムJSONAPISerializerを書く必要はありませんか?私が読んだガイドのほとんどはこれをすると言っていませんでした。どんな助けやヒントも大歓迎です!

答えて

1

JSONレスポンスには、JSONAPI仕様に従って「タイプ」フィールドが含まれている必要があります。ここでアプリがどのように見える私のレールから何JSONです:

{"data":{"attributes":{"title":"asdf","body":"adsf"},"type":"posts"}} 

あなたはレール側にアクティブなモデルシリアライザを使用していて、あなたはJSONAPIレンダラを使用するように構成したのですか?

あなたがしなければならないのは、初期化子でActiveModelSerializers.config.adapterに設定されている:

# config/initializers/jsonapi.rb 
ActiveModelSerializers.config.adapter = :json_api 

それは自動的にtypeフィールドを含める必要があります。

まだ問題がある場合は、私が手伝ってくれるレールコードをいくつか共有すればいいと思います。

+0

ありがとうございました!私は自分のRailsを設定しましたが、今でも自動的にそれを行います:) – Sticky

関連する問題