2013-03-04 13 views
6

Sono davvero alle prese con l'adattatore REST di Ember-data e le risorse annidate e apprezzerei qualsiasi aiuto ... Sto usando l'ultima versione (1.0.4pre) di Ember e Ember-data (revisione: 11).Lottare con l'adattatore REST di Ember-data e le risorse nidificate

Ho 2 modelli semplici:

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') 
}); 

e semplici percorsi nidificati:

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

ho un Rails 3 JSON API che ha i seguenti parametri:

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

Quando Navigazione verso users/:user_id/schemes nella mia app ember Voglio recuperare tutti gli schemi dell'utente, tuttavia per impostazione predefinita Em ber-data request /schemes, che non è un endpoint nella mia API - Posso aggiungerlo ma ho bisogno di schemi di scope per utente, non ho il concetto di current_user come voglio vedere qualsiasi utente e le sue combinazioni.

Esiste un modo per forzare Ember a guardare /users/:user_id/schemes o per aggiungere un parametro di query alla chiamata ajax predefinita di Ember, ad esempio: /schemes?user_id=:user_id?

In alternativa, c'è un modo per aggiungere alle intestazioni delle richieste ajax, che a sua volta l'API delle mie guide può leggere e impostare la risposta /schemes di conseguenza?

risposta

4

Sembra che questa funzione sia stata discussa abbastanza, ma non ancora implementata. This issue contiene codice di esempio per una rapida soluzione.

Si potrebbe anche usare:

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

alla tua ricerca /schemes?user_id=id.

+0

Grazie a @ahmacleod. Utilizzo di 'App.Scheme.find ({user_id: 'id'});' funziona per ora, ma sembra una soluzione economica. Immagino sia quello che deriva dal guidare con la tecnologia giovane! – olvado

Problemi correlati