¿Diferencia entre la ruta de recopilación y la ruta de miembros en Ruby on Rails?

Resuelto never_had_a_name asked hace 14 años • 5 respuestas

¿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.

never_had_a_name avatar Jun 12 '10 19:06 never_had_a_name
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.

Theo avatar Jun 12 '2010 12:06 Theo
                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)
Amit Patel avatar Jul 25 '2012 10:07 Amit Patel

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!

tybro0103 avatar Jul 09 '2012 18:07 tybro0103