rutas rails proyecto libro formularios crear ruby-on-rails ruby

ruby on rails - rails - ¿Cuál es la diferencia entre la ruta de recolección y la ruta de miembros en Ruby sobre rieles?



routes ruby on rails (4)

1) : colección : agregue rutas con nombre para otras acciones que operan en la colección. Toma un hash de #{action} => #{method} , donde el método es :get/:post/:put/:delete , una matriz de cualquiera de los anteriores, o: any si el método no importa. Estas rutas se asignan a una URL como / users / Customers_list , con una ruta de Customers_list_users_url .

map.resources: users,: collection => {: Customers_list =>: get}

2) :member : igual que :collection , pero para acciones que operan en un miembro específico.

map.resources: users,: member => {: inactive =>: post}

se trató como /users/1;inactive=> [:action => ''inactive'', :id => 1]

¿Cuál es la diferencia entre las rutas de recolección y las 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.


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

Note la pluralidad!


Una ruta de miembro requerirá una identificación, ya que actúa sobre un miembro . Una ruta de recolección no lo hace porque actúa sobre una colección de objetos. La vista previa es un ejemplo de una ruta de miembro, porque actúa (y muestra) un solo objeto. La búsqueda es un ejemplo de una ruta de recolección, porque actúa (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)