2009-08-11 7 views
2

Je souhaite pouvoir modifier le mappage d'actions par défaut avec l'URL RESTful et le type de demande.Modification des actions REST par défaut dans les rails

Par exemple,

Après avoir ajouté map.resources :fruits dans les routes, par défaut, l'envoi d'une demande GET à /fruits/:id appels d'action show dans fruits contrôleur. Cependant, je voudrais appeler une action personnalisée, par exemple display, dans le contrôleur fruits au lieu de l'action show. Comment fait-on ça? Cela doit être une configuration de route.

+0

Ceci n'est pas directement lié à votre question, mais sachez que le "routage RESTful" de Rails n'a rien à voir avec REST. Les adresses URI sont orthogonales à REST. Il n'y a pas de "URL RESTful". Si vous êtes intéressé par REST, s'il vous plaît lisez-y plus - la thèse de Fielding est la source faisant autorité, ou vous pouvez parcourir certaines des explications REST sur ce site. – aehlke

Répondre

1

Je voudrais vous recommander de lire cette page:

http://guides.rubyonrails.org/routing.html

Il explique en détail tous les aspects liés au routage. En utilisant: path_names, vous pouvez personnaliser les nouveaux chemins et modifier les chemins générés. Si vous souhaitez modifier GET /fruits/:id en activant l'action show pour activer une action display, la modification est invisible pour l'utilisateur. Et vous seriez déviant du flux sans raison apparente.

+3

Il existe des raisons décentes de le faire si vous utilisez des ressources imbriquées, en particulier des ressources profondément imbriquées. À un certain point, vous vous retrouvez avec une prolifération massive de contrôleurs en acceptant les valeurs par défaut, et les surcharger vous permet de conserver la structure imbriquée tout en envoyant plusieurs ressources au même contrôleur. Je trouve cela particulièrement utile quand vous vous retrouvez avec un contrôleur parent qui n'a qu'une action d'index et rien d'autre que des ressources enfants plus complexes. –

Questions connexes