Skip to content

Archives

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021

Categories

  • Keine Kategorien
Trend RepositoryArticles and guides
Articles

Routing in Rails

On Januar 18, 2022 by admin
  • Was genau ist Routing?
  • Wie wird das Routing in Ruby on Rails durchgeführt?
  • Arten von HTTP-Anforderungsmethoden
  • Dekodierung der http-Anfrage
  • Definieren von Ressourcen
  • Einzelne und mehrere Ressourcen
  • Verschachtelte Ressourcen
  • Weiteres Studium

Was genau ist Routing?

Wenn es eine HTTP-Anfrage vom Benutzer an die Anwendung gibt, sollte sie an den richtigen Controller geleitet werden. Man kann sich einen Router wie eine Empfangsdame vorstellen, die einen mit dem richtigen Ansprechpartner verbindet.

Wie wird das Routing in Ruby on Rails durchgeführt?

In Rails befinden sich die Routen der Anwendung in config/routes.rb. Der Rails-Router erkennt URLs und leitet sie an die Aktion eines Controllers weiter. Er kann auch Pfade und URLs generieren, so dass die Notwendigkeit besteht, Strings in Ihren Ansichten zu kodieren. Betrachten wir eine Anwendung zur Buchung von Zimmern in verschiedenen Hotels und schauen wir uns an, wie das funktioniert.

Arten von HTTP-Anforderungsmethoden

Die Anwendung empfängt eine HTTP-Anforderung, die eine Methode mit sich bringt, die sein könnte:

GET – Abrufen einer Ressource

POST – Erstellen einer Ressource

PUT – Vollständige Aktualisierung einer Ressource

PATCH – Teilweise Aktualisierung einer Ressource

DELETE – Löschen einer Ressource

Diese Methoden bestimmen, welche Controller-Aktionsmethode aufgerufen wird.

Dekodierung der http-Anfrage

Wenn die Anwendung die Anfrage erhält, GET /hotels/1. Die Anfrage wird an die Aktion show des Hotel-Controllers mit { id: '1' } in params gesendet.

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

Ähnlich,

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: Wenn Sie jemals alle Routen Ihrer Anwendung auflisten wollen, können Sie rails routes auf Ihrem Terminal verwenden und wenn Sie Routen einer bestimmten Ressource auflisten wollen, können Sie rails routes | grep hotel verwenden. Dies wird alle Routen des Hotels auflisten.

Definieren von Ressourcen

Wie die Rezeptionistin einen Datensatz aller Reservierungen hat, so hat auch die Anwendung ihren eigenen Datensatz in config/routes.rb.

Rails.application.routes.draw do resources :hotelsend

Durch das Schreiben von resources :hotels erstellen wir alle sieben verschiedenen Routen in Ihrer Anwendung, die alle auf den Controller Hotels abgebildet werden, wie oben erwähnt.

Wenn Ihr Controller nur ein paar dieser Aktionen hat, können Sie diese mit den folgenden Schlüsselwörtern ändern.

Das Schlüsselwort umfasst nur die genannten Aktionen.resources :hotels, only:

Es gibt auch das Schlüsselwort except, um die zu benennen, die du nicht einbeziehen willst.

resources :hotels, except:

Einzelne und mehrere Ressourcen

Manchmal haben wir eine einzelne Ressource, d.h. wir müssen nur auf eine einzelne Seite zugreifen, anstatt eine ID zu referenzieren. In diesem Fall verwenden wir den singulären Begriff Ressource.

resource :hotels

Wenn Sie mehrere Ressourcen definieren müssen,

resources :hotels, :rooms was genauso funktioniert wie

resources :hotels,resources :rooms

Verschachtelte Ressourcen

Manchmal haben wir verschachtelte Routen,/hotels/:id/rooms die aus Ressourcen resultieren, die logischerweise Kinder anderer Ressourcen sind. Nehmen wir zum Beispiel an, deine Anwendung enthält diese Modelle:

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

In diesem Fall werden wir unsere Ressourcen so deklarieren,

resources :hotels do resources :roomsend

Diese Deklaration hilft uns, auf die verschachtelten URLs wie /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new usw. zuzugreifen

Weiteres Studium

Wenn du tiefer in das Routing einsteigen willst, kannst du dich auf Rails Routing from the outside in http://guides.rubyonrails.org/routing.html beziehen.

Coverfoto von Javier Allegue Barros auf Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Archive

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org
  • 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