298 votes

différence entre la route de la collection, puis membre en ruby on rails ?

Quelle est la différence entre la collection routes et membre dans les Rails ?

Par exemple,

par rapport à

Je ne comprends pas.

446voto

Theo Points 60103

Un itinéraire de membre nécessitera un ID, car il agit sur un membre . Une route de collection ne fonctionne pas parce qu'elle agit sur une collection d'objets. L'aperçu est un exemple de route membre, car il agit sur (et affiche) un seul objet. La recherche est un exemple de route de collection, car elle agit sur (et affiche) une collection d'objets.

239voto

Amit Patel Points 2478
                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_url           Acts on collection of resources(display all photos)

36voto

tybro0103 Points 13198

La réponse de Theo est correcte. Pour la documentation, je voudrais également noter que les deux généreront des aides de chemin différents.

member {get 'preview'} générera:

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

collection {get 'search'} générera:

 search_photos_path # /photos/search
 

Noter la pluralité!

15voto

Beena Shetty Points 904

1) :la collection - Ajouter des routes nommées pour d'autres actions qui se déroulent sur la collection. Prend un algorithme de hachage #{action} => #{method}, où la méthode est - :get/:post/:put/:delete, un tableau de l'un des précédente, ou :tout si la méthode n'a pas d'importance. Ces itinéraires à la carte à l'URL /users/customers_list, avec un itinéraire de customers_list_users_url.

carte.ressources :utilisateurs :collection => { :customers_list=> :obtenir }

2) :member - Mêmes en tant que :collection, mais pour des actions qui fonctionnent sur un membre spécifique.

carte.ressources :utilisateurs :membres => { :inactif=> :post }

elle traitée comme /users/1;inactive=> [:action => 'inactive', :id => 1]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X