Ho un po 'di difficoltà a trovare la risposta giusta, quindi solleciterò il mio problema qui. Sto lavorando su un'API RESTFul. Naturalmente, ho molte risorse, alcune delle quali consistono in relazioni da genitori a figli, alcune delle quali sono risorse autonome. Dove sto avendo un po 'di difficoltà è capire come rendere le cose più facili per le persone che costruiranno clienti contro la mia API.Mappatura delle risorse in un URL Ruby on Rails (API RESTful)
La situazione è questa. Ipoteticamente ho una risorsa 'Street'. Ogni strada ha più case. So Street: has_many to Homes and Homes: appartiene alla strada. Se un utente desidera richiedere un HTTP GET su una risorsa di casa specifica, il seguente dovrebbe funzionare:
http://mymap/streets/5/homes/10
che consente all'utente di ottenere informazioni per una casa con l'id 10. dritto in avanti. La mia domanda è, sto rompendo le regole del libro, dando all'utente l'accesso a:
http://mymap/homes/10
Tecnicamente esiste tale risorsa a casa da sola, senza la strada. Rende senso che esiste come una propria entità senza una strada incapsulante, anche se la logica aziendale dice diversamente.
Qual è il modo migliore per gestire questo?
MODIFICA! Nello spirito di diventare un buon cittadino di StackOverflow, sono tornato con un blocco di codice supportato su come implementarli sopra.
map.resources :streets,
:has_many => :homes
:shallow => true
Questo creerà entrambi i tipi di percorsi che stavo cercando.
Questa opzione superficiale è interessante. – tadman