¿Diferencia entre la ruta de recopilación y la ruta de miembros en Ruby on Rails?
¿Cuál es la diferencia entre rutas de colección y rutas de miembros en Rails?
Por ejemplo,
resources :photos do
member do
get :preview
end
end
versus
resources :photos do
collection do
get :search
end
end
No entiendo.
Aceptado
Una ruta de miembro requerirá una identificación porque actúa sobre un miembro . Una ruta de colección no lo hace porque actúa sobre una colección de objetos. La vista previa es un ejemplo de ruta de miembro, porque actúa sobre (y muestra) un solo objeto. La búsqueda es un ejemplo de ruta de recopilación, porque actúa sobre (y muestra) una colección de objetos.
URL Helper Description
----------------------------------------------------------------------------------------------------------------------------------
member /photos/1/preview preview_photo_path(photo) Acts on a specific resource so required id (preview specific photo)
collection /photos/search search_photos_path Acts on collection of resources(display all photos)
La respuesta de Theo es correcta. Por el bien de la documentación, me gustaría señalar también que los dos generarán diferentes ayudantes de ruta.
member {get 'preview'}
Generará:
preview_photo_path(@photo) # /photos/1/preview
collection {get 'search'}
Generará:
search_photos_path # /photos/search
¡Nótese la pluralidad!