2010-12-02 3 views

Répondre

2

resources :home définit les routes RESTful par défaut - index, show, new, create, edit, update et destroy. Toutes les routes supplémentaires doivent être spécifiées. On dirait que vous ajoutez un itinéraire simple de collecte, de sorte que vous souhaitez définir comme ceci:

resources :home 
    collection do 
    get 'about' 
    end 
end 

Cela vous donnera votre l'itinéraire «/home/about ». Je suppose que cela est Rails 3. Si vous êtes dans Rails 2.x, faire comme ceci:

map.resources :home, :collection => {:about => :get} 

Et à partir de la ligne de commande, vous pouvez toujours voir ce que les routes dont vous disposez avec cette commande:

rake routes 

J'espère que cela aide!

EDIT: Si vous voulez une route par défaut, vous pouvez ajouter ceci:

match ':controller(/:action(/:id))' 

C'est une route par défaut qui correspondent à toutes les demandes génériques.

ARTICLE COMPLET: Routage dans Rails 3 est sa propre bête. Il y a eu beaucoup de questions à ce sujet ces derniers temps, donc j'ai créé un article très détaillé avec des exemples de code pour aider les autres:

Routing in Ruby on Rails 3

J'ai créé un compagnon Rails 3 app qui peut être téléchargé à jouer avec, ainsi:

https://github.com/kconrails/rails3_routing

Si vous avez des questions, s'il vous plaît frapper mon site et demander. Merci!

+0

oui rails 3, merci! – Blankman

+0

il devrait y avoir un moyen de les câbler tous automatiquement, surpris il n'y a pas un moyen de le faire ... – Blankman

+0

cela me donne un url helper about_homes_path? – Blankman

0

ressources vous donnera les 7 méthodes CRUD pour un contrôleur, si vous voulez des actions supplémentaires, vous devez faire quelque chose comme ce qui suit:

resources :homes do 
    collection do 
    match "about" => "homes#about", :as => "about" 
    end 
end 

Ensuite, vous aurez également un about_homes_path supplémentaire/aide url disponible.

Questions connexes