2016-06-25 8 views
0

私はEmber 2.6で作業しています。現在、Mirageをクライアントでホストされている静的データベースに使用しています。Ember + Mirageとの関係

サンプルデータを提供するフィクスチャを使用し始めましたが、関係を機能させることはできません。

私は2つの実体を持っている:多くのと島とスポットを、一つの関係に

//mirage/models/spot.js 
import { Model, belongsTo } from 'ember-cli-mirage'; 
export default Model.extend({ 
    island: belongsTo() 
}); 

//mirage/models/island.js 
import { Model, hasMany } from 'ember-cli-mirage'; 
export default Model.extend({ 
    spots: hasMany() 
}); 

と私のフィクスチャデータ

//mirage/fixture/spots.js 
export default [ 
    {id: '1', name: 'test spot', island_id: [1]}, 
} 

//mirage/fixture/islands.js 
export default [ 
    {id: '1', name: 'Island 1 Name', permit: null, spot_ids: [1]}, 
} 

私config.jsの単純なのgetAll

this.get('/islands', function(schema, request){ 
    return schema.islands.all(); 
    }); 

あるしかし、私はそれを呼び出すとき、私は自分の島を得たが、関係が欠落しています。

デフォルトのjson apiアダプタを使用します。

ミラージュを特定の関係でjsonデータを返すようにする方法はありますか? 両側と2の関係を同時に設定しようとしましたが、いずれも子エンティティを提供しませんでした。ここで

はgithubの上の私のプロジェクトのリンクは次のとおりです。 https://github.com/drallieiv/StreetpassTips/tree/feature/showRealDataForIslands/mirage

答えて

0

は、フィクスチャファイル内の関係のプロパティの間にはアンダースコアでそれを試してみてください。例えば

:// jsonapi:あなたは私はJSONのAPI仕様(HTTPを見てきましたhasMany('spot')belongsTo('island')

+0

同様のhasManyとbelongsToのにモデル を与えなければならないモデルでも

//mirage/fixture/spots.js export default [ {id: '1', name: 'test spot', islandId: 1}, } 

。 org/format /#document-resource-object-linkage) 島へのGETは含まれている要素を返すべきではありませんか?私は、これはJSON(クロームデバッガ) を解析された受信得たもので !島々が戻るの呼び出しは正常に見える何[スクリーンショット](http://i.imgur.com/1yhAgqv.jpg) –

+0

が、私結果に埋め込まれるスポットか、私のアプリが GET/spots /:idを呼び出すと予想されます。 –

+0

解答の 'islandId'値の前後にある大括弧を削除するように編集しました。それは重要です。 –

関連する問題