Tengo un poco de dificultad para encontrar la respuesta correcta a esto, por lo que solicitaré mi problema aquí. Estoy trabajando en una API RESTFul. Naturalmente, tengo múltiples recursos, algunos de los cuales consisten en relaciones de padres a hijos, algunos de los cuales son recursos independientes. Donde estoy teniendo un poco de dificultad es encontrar la manera de facilitar las cosas para las personas que construirán clientes contra mi API.Asignación de recursos en una URL de Ruby on Rails (API RESTful)
La situación es esta. Hipotéticamente, tengo un recurso de 'Calle'. Cada calle tiene múltiples hogares. So Street: has_many to Homes and Homes: belongs_to Street. Si un usuario desea solicitar un HTTP GET en un recurso específico a casa, el siguiente debería funcionar:
http://mymap/streets/5/homes/10
que permite a un usuario obtener información de un hogar con el identificador 10. sencillo. Mi pregunta es, ¿estoy rompiendo las reglas del libro, dando al usuario el acceso a:
http://mymap/homes/10
Técnicamente existe ese recurso local en su propia sin la calle. Hace sentido que existe como su propia entidad sin una calle de encapsulado, aunque la lógica de negocios dice lo contrario.
¿Cuál es la mejor manera de manejar esto?
EDIT! En mi afán por convertirme en un buen ciudadano de StackOverflow, he vuelto con un bloque de código compatible para saber cómo implementarlo más arriba.
map.resources :streets,
:has_many => :homes
:shallow => true
Esto creará dos tipos de rutas que yo estaba buscando.
Esa opción superficial es interesante. – tadman