2016-04-16 15 views
0

エンティティの歴史を扱うための機能を開発したいとしましょう。履歴エントリをフェッチするとき、各履歴エントリはアプリケーションモデルエンティティにバインドできます。Emberデータ - 任意の型と多相関係

汎用履歴モデルの作成を避け、アプリケーション内のすべてのモデルを拡張するには、どうすれば多形性を達成できますか?ポストとコメントモデルをリファクタリングwhitoutポストやコメントがhistoricentryモデル内のエンティティ関係の関連するタイプであることをできるようにする方法を

この例では
//models/historicentry 
export default DS.Model.extend({ 
    entity:DS.belongsTo('????', {polymorphic:true}) 
    ... 
}); 

//models/post 
export default DS.Model.extend({ 
... 
}} 

//models/comment 
export default DS.Model.extend({ 
... 
}} 

、? JSONAPIを使用して

は、歴史をフェッチする要求が

//GET /historic 
{ 
    "data":[ 
     { 
      "type":"historics", 
      "id":1, 
      "attributes":{ ... } 
      "relationships":{ 
       "entity":{"data":{"id":1, "type":"posts"}} 
      } 
     }, 
     { 
      "type":"historics", 
      "id":1, 
      "attributes":{ ... } 
      "relationships":{ 
       "entity":{"data":{"id":1, "type":"comments"}} 
      } 
     } 
    ] 
} 
+0

Ember Dataで多型を使用することはお勧めしません。あなたが終わったら、残っている髪の毛は銀色になります。 –

+0

くそー!私はすでに大胆である: -/ – Fiftoine

答えて

1

あなたが共通のベースモデルを使用する必要があります!私はその可能性がないとは思わない。

よく、DS.Modelを直接使用することができます。ファイルbase.jsextendなしでをexport default DS.Model;にエクスポートしてからbelongsTo('base', ...) を使用してください。しかし、まだ試していません。それが動作する場合、醜いハックのように見えます。

+0

あなたが言うようにそれは醜いですが、それは動作します。ありがとう@Lux – Fiftoine

関連する問題