2013-03-04 12 views
6

Ember-dataのRESTアダプタとネストされたリソースに本当に苦労しています。私はEmberの最新バージョン(1.0.4pre)を使用しています。 Ember-data(リビジョン:11)。Ember-dataのRESTアダプタとネストされたリソースとの闘い

私は2つの単純なモデルがあります:

App.User = DS.Model.extend({ 
    name:  DS.attr('string'), 
    email: DS.attr('string'), 
    schemes: DS.hasMany('App.Scheme') 
}); 

App.Scheme = DS.Model.extend({ 
    name: DS.attr('string'), 
    users: DS.hasMany('App.User') 
}); 

とシンプルなネストされたルート:

Router.map(function() { 
    this.resource("user", { path: "users/:user_id" }, function() { 
    this.resource("schemes"); 
    }); 
}); 

私は次のエンドポイントを持っているRailsの3 JSON APIを持っている:

/users/:user_id 
/users/:user_id/schemes 

私はusers/:user_id/schemesに移動します。私はすべてのユーザーのスキームを取得したいと思いますが、デフォルトでEm ber-data要求/schemesは、私のAPIのエンドポイントではありません。私はそれを追加することができますが、ユーザーごとにスキームを設定する必要があります。ユーザーと彼女のスキームを表示したいので、current_userという概念はありません。

Emberに/users/:user_id/schemesを見せたり、Emberのデフォルトのajax呼び出しにクエリパラメータを追加する方法がありますか?/schemes?user_id=:user_id

また、ajaxリクエストヘッダーを追加する方法があります。これにより、私のレールAPIは、それに応じて/schemesレスポンスを読み込んで設定することができます。

答えて

4

この機能はかなり議論されたようですが、まだ実装されていません。 This issueには、迅速な回避策のサンプルコードが含まれています。

また、使用することができます

var userSchemes = App.Scheme.find({ used_id: 'id' }); 

/schemes?user_id=idを照会します。

+0

ありがとう@ahmacleod。 'App.Scheme.find({user_id: 'id'});'は現在動作しますが、安価な回避策のようです。私はそれが若い技術に乗って来るものだと思います! – olvado