2010-10-06 6 views
1

Quelqu'un peut-il expliquer ce qui suit, avec des exemples d'URL? merci un paquet! (un ensemble de gemmes!)que font ces voies ferrées?

resources :products do 
    resource :category 

    member do 
    post :short 
    end 

    collection do 
    get :long 
    end 
end 

Les ressources mappent toutes les routes dans le ProductController droit? Comment la catégorie est-elle intégrée?

match 'products/:id', :to => 'catalog#view' 

Cette carte/produits/234 à la categolController, voir l'action?

Répondre

5

Essayez d'exécuter rake routes à partir de votre répertoire de projet Rails. Cela va cracher une liste complète des routes et où elles sont mappées.

1

Comme mentionné Chris routes râteau vous diront, mais une explication rapide:

toutes les routes à base de produits iront au contrôleur de produits afin:

GET /products  # products controller index action 
GET /products/:id # products controller show action 
POST /products  # products controller create action 
PUT /products/:id # products controller update action 
... etc etc 

Vous serez également donné des itinéraires supplémentaires mais qui vont à un contrôleur de catégories, cette catégorie sera une propriété de certains produits ... donc:

GET /products/:product_id/category # categories controller index action 
POST /products/:product_id/category # categories controller create action 
... etc etc 

Si vous faites quelque chose comme:

match 'products/:id', :to => 'catalog#view' 

Vous remplacez l'action show par défaut de la route. c'est ce que tu veux? Probablement pas. Encore une fois, exécutez rake routes pour savoir ce qui se passe.