57 votes

Rails POST, PUT, GET

Après je générer un échafaudage, des Rails me donne la possibilité de POSTER items.xml qui permettra de créer un nouveau item. Un GET d' items.xml sera tout simplement la liste de tous les. D'où vient Rails de préciser la méthode qui dans le contrôleur (create ou index, respectivement) sera appelée, en fonction du type d'action je suis performants?

Plus spécifiquement, des appels methodA mais arriver à la même URL appels methodB. Où est-ce indiqué? D'où vient Rails de prendre la décision d'appeler l' index méthode du contrôleur?

91voto

Matt Grande Points 6230

Je crois qu'il est spécifié par le REPOS. Voici une liste pour toi:

GET    /items        #=> index
GET    /items/1      #=> show
GET    /items/new    #=> new
GET    /items/1/edit #=> edit
PUT    /items/1      #=> update
POST   /items        #=> create
DELETE /items/1      #=> destroy

Edité pour ajouter à obtenir tous ces itinéraires, dans le fichier config/routes.rb, il suffit d'ajouter map.resources :items

27voto

John Topley Points 58789

Rails définit sept méthodes de contrôleur de repos ressources par la convention. Ils sont les suivants:

D'Action de la Méthode HTTP But
-------------------------------------------------------------------------
index OBTENIR Affiche une collection de ressources
émission OBTENIR Affiche une ressource unique
nouveauté Affiche un formulaire pour la création d'une nouvelle ressource
créer des POST Crée une nouvelle ressource (nouveau soumet à cet)
edit OBTENIR Affiche un formulaire pour l'édition d'une ressource existante
mise à jour METTRE à jour d'une ressource existante (modifier soumet à cet)
détruire SUPPRIMER Détruit une seule ressource

Notez que parce que les navigateurs web, en général, seulement un soutien GET et POST, Rails utilise un champ caché pour les transformer en les requêtes PUT et DELETE tant que de besoin.

La spécification map.resources :items en config/routes.rb vous obtient ces sept méthodes "gratuitement". Vous pouvez lister toutes les routes à l'intérieur de votre application à tout moment en saisissant rake routes dans la console.

10voto

Don Werve Points 3901

Le meilleur endroit pour apprendre à ce sujet le Guide de Routage.

5voto

vrish88 Points 3918

À l'instar de Don Werve dit, jetez un oeil à vos itinéraires.rb fichier. Là vous avez probablement quelque chose comme ceci:

map.resources :items

C'est là que les rails des liens de la POSTE et des demandes pour certaines actions. Pour voir comment cela fonctionne regardez les liens à partir d'autres réponses. Les docs de l'aide d'une tonne.

À toutes les routes et les actions qu'ils lien vous pouvez taper rake routes dans l'invite de commande lorsque vous êtes à la racine de votre rails répertoire. Cela va vous montrer tout (en termes de routage) qu'un échafaudage vous donne.

5voto

jshen Points 3888

Cela va aider beaucoup, mais ce n'est pas une réponse directe à votre question. La commande suivante liste les mappages de votre application de sorte que vous n'avez pas à vous rappeler tous les détails, ou de deviner.

$ rake routes

Pour répondre plus directement, c'est une convention que les rails utilise. Vous définissez cette cartographie quand vous le mettez quelque chose comme ce qui suit dans vos itinéraires.rb

map.resources :items

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