4

これを行ういくつかの方法を見てきましたが、「最も正しい」アプローチが ember-data rev 12 の最新ビルド (マスターも) を使用していることに興味があります

オプション#1(最も明白な方法に見えるでしょう)

App.Post = DS.Model.extend({
    primaryKey: '_id',
    _id: DS.attr('string')
});

オプション #2 (アダプターを使用してタイプ別にマップする)

App.Adapter.map('App.Post', {
    primaryKey: '_id'
});

オプション #3 (シリアライザーでハードコーディング - すべてのモデルが同じカスタム pk を持っていると仮定)

App.MySerializer = DS.RESTSerializer.extend({
    primaryKey: function(type) {
        return '_id';
    }
});
4

3 に答える 3

2

答えはオプション #2 です。これは、アダプターが関連するコンポーネントであるためです。アダプターは、どのプロパティが主キーであるかを知る必要があります。モデルやシリアライザーにとっては重要ではありません。

于 2013-04-22T00:36:51.253 に答える
1

この質問は非常に古いですが、受け入れられた回答がなく、Googleに表示されました。

現在の答えは、これをシリアライザーに設定することです ( https://guides.emberjs.com/v3.0.0/models/customizing-serializers/#toc_ids )

// app/serializers/application.js

import DS from 'ember-data';

export default DS.JSONAPISerializer.extend({
  primaryKey: '_id'
});
于 2018-03-16T17:21:46.460 に答える