Skip to content

Archives

  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021
  • septembre 2021

Categories

  • Aucune catégorie
Trend RepositoryArticles and guides
Articles

Routage dans Rails

On janvier 18, 2022 by admin
  • Qu’est-ce que le routage exactement ?
  • Comment le routage est fait dans Ruby on Rails?
  • Types de méthodes de requête HTTP
  • Décodage de la requête http
  • Définition des ressources
  • Ressources uniques et multiples
  • Ressources imbriquées
  • Étude plus approfondie

Qu’est-ce que le routage exactement ?

Quand il y a une requête HTTP de l’utilisateur vers l’application, elle doit être dirigée vers le bon contrôleur. Vous pouvez imaginer un routeur comme une réceptionniste à qui vous connecte à la bonne personne à qui parler.

Comment le routage est fait dans Ruby on Rails?

Dans Rails, les routes de votre application vivent dans config/routes.rb. Le routeur de Rails reconnaît les URL et les dispatche vers l’action d’un contrôleur. Il peut également générer des chemins et des URL, évitant ainsi de devoir coder en dur des chaînes de caractères dans vos vues. Considérons une application permettant de réserver des chambres dans différents Hôtels et regardons comment cela fonctionne.

Types de méthodes de requête HTTP

L’application reçoit une requête HTTP qui emporte avec elle une méthode qui peut être :

GET – Récupérer une ressource

POST – Créer une ressource

PUT – Mettre à jour complètement une ressource

PATCH – Mettre à jour partiellement une ressource

DELETE – Supprimer une ressource

Ces méthodes déterminent quelle méthode d’action du contrôleur est appelée.

Décodage de la requête http

Si l’application reçoit la requête, GET /hotels/1. La requête est envoyée à l’action show du contrôleur d’hôtels avec { id: '1' } dans les paramètres.

get '/hotels/:id', to: 'hotels#show'

De même,

get '/hotels', to: 'hotels#index'get '/hotels/:id', to: 'hotels#show'get '/hotels/new', to: 'hotels#new'post '/hotels', to: 'hotels#create'get '/hotels/:id/edit', to: 'hotels#edit'put '/hotels/:id', to: 'hotels#update'delete '/hotels/:id', to: 'hotels#destroy'

TIP : Si jamais vous voulez lister toutes les routes de votre application, vous pouvez utiliser rails routes sur votre terminal et si vous voulez lister les routes d’une ressource spécifique, vous pouvez utiliser rails routes | grep hotel. Ceci listera toutes les routes de Hotel.

Définition des ressources

Comme la réceptionniste détient un enregistrement de toutes les réservations, l’application aussi a son propre enregistrement dans config/routes.rb.

Rails.application.routes.draw do resources :hotelsend

En écrivant resources :hotels nous créons les sept routes différentes dans votre application, toutes mappant vers le contrôleur Hotels comme mentionné ci-dessus.

Si votre contrôleur n’a que quelques-unes de ces actions, vous pouvez modifier la même chose avec les mots-clés suivants.

Le mot-clé ne comprend que les actions mentionnées.resources :hotels, only:

Il y a aussi le mot-clé except pour nommer celles que vous ne voulez pas inclure.

resources :hotels, except:

Ressources uniques et multiples

Parfois nous avons une ressource unique c’est-à-dire que nous devons seulement accéder à une seule page au lieu de référencer un id. C’est alors que nous utilisons le terme singulier, ressource.

resource :hotels

Lorsque vous devez définir des ressources multiples,

resources :hotels, :rooms qui fonctionne de la même manière que

resources :hotels,resources :rooms

Ressources imbriquées

Parfois, nous avons des routes imbriquées, /hotels/:id/rooms qui sont le résultat de ressources qui sont logiquement enfants d’autres ressources. Par exemple, supposons que votre application comprend ces modèles :

class Hotel < ApplicationRecord has_many :roomsendclass Room < ApplicationRecord belongs_to :hotelend

Dans ce cas, nous déclarerons nos ressources de cette façon,

resources :hotels do resources :roomsend

Cette déclaration nous aide à accéder aux URL imbriquées telles que /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new etc

Étude plus approfondie

Si vous voulez creuser plus profondément dans le routage, vous pouvez vous référer à Rails Routing from the outside in http://guides.rubyonrails.org/routing.html.

Photo de couverture par Javier Allegue Barros sur Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

.

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archives

  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021
  • septembre 2021

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress