differenza tra il percorso di raccolta e l’itinerario del membro in ruby su rotaia?

Qual è la differenza tra percorsi di raccolta e percorsi dei membri in Rails?

Per esempio,

resources :photos do member do get :preview end end 

contro

 resources :photos do collection do get :search end end 

Non capisco.

Un percorso membro richiederà un ID, perché agisce su un membro . Un percorso di raccolta non perché agisce su una collezione di oggetti. Anteprima è un esempio di un percorso membro, poiché agisce su (e visualizza) un singolo object. La ricerca è un esempio di un percorso di raccolta, poiché agisce su (e visualizza) una raccolta di oggetti.

  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 risposta di Theo è corretta. Per ragioni di documentazione, mi piacerebbe anche notare che i due genereranno diversi helper del percorso.

member {get 'preview'} genererà:

 preview_photo_path(@photo) # /photos/1/preview 

collection {get 'search'} genererà:

 search_photos_path # /photos/search 

Nota la pluralità!

1) : collezione – Aggiungi percorsi nominati per altre azioni che operano sulla raccolta. Prende un hash di #{action} => #{method} , dove method è :get/:post/:put/:delete , una matrice di una delle precedenti, o: any se il metodo non ha importanza. Questi percorsi si collegano a un URL come / users / customers_list , con un percorso di customers_list_users_url .

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

2) :member – Uguale a :collection , ma per azioni che operano su un membro specifico.

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

trattato come /users/1;inactive=> [:action => 'inactive', :id => 1]