Skip to content

Archives

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Categories

  • Geen categorieën
Trend RepositoryArticles and guides
Articles

Routing in Rails

On januari 18, 2022 by admin
  • Wat is routing precies?
  • Hoe wordt routing gedaan in Ruby on Rails?
  • Soorten HTTP request methods
  • Decodering van het http verzoek
  • Definiëren van bronnen
  • Enkelvoudige en meervoudige bronnen
  • Geneste Resources
  • Verdere studie

Wat is routing precies?

Wanneer er een HTTP-verzoek van de gebruiker naar de applicatie, moet het worden doorgestuurd naar de juiste controller. Je kunt je een router voorstellen als een receptionist bij wie je wordt doorverbonden met de juiste persoon om mee te praten.

Hoe wordt routing gedaan in Ruby on Rails?

In Rails staan de routes van je applicatie in config/routes.rb. De Rails-router herkent URL’s en stuurt ze door naar de actie van een controller. Het kan ook paden en URL’s genereren, het vermijden van de noodzaak om hardcode strings in uw standpunten. Laten we eens kijken naar een toepassing om kamers te boeken in verschillende hotels en hoe dit werkt.

Soorten HTTP request methods

De applicatie ontvangt een HTTP request dat een methode met zich meedraagt die kan zijn:

GET – Haalt een resource op

POST – Maakt een resource

PUT – Werkt een resource volledig bij

PATCH – Werkt een resource gedeeltelijk bij

DELETE – Verwijdert een resource

Deze methodes bepalen welke controller actie methode wordt aangeroepen.

Decodering van het http verzoek

Als de applicatie het verzoek ontvangt, GET /hotels/1. Het verzoek wordt verzonden naar de hotel controller’s show actie met { id: '1' } in params.

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

Ook

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: Als u ooit een lijst van alle routes van uw applicatie wilt, kunt u rails routes op uw terminal gebruiken en als u een lijst van routes van een specifieke bron wilt, kunt u rails routes | grep hotel gebruiken. Dit zal een lijst van alle routes van Hotel.

Definiëren van bronnen

Zoals de receptioniste een record heeft van alle reserveringen, heeft de applicatie ook zijn eigen record in config/routes.rb.

Rails.application.routes.draw do resources :hotelsend

Door het schrijven van resources :hotels creëren we alle zeven verschillende routes in uw applicatie, alle mappend naar de Hotels controller zoals hierboven vermeld.

Als uw controller slechts een paar van deze acties heeft, kunt u hetzelfde wijzigen met de volgende trefwoorden.

Het trefwoord omvat alleen de genoemde acties.resources :hotels, only:

Er is ook het trefwoord except om de acties te noemen die je niet wilt opnemen.

resources :hotels, except:

Enkelvoudige en meervoudige bronnen

Soms hebben we een enkelvoudige bron, d.w.z. dat we slechts toegang hebben tot een enkele pagina in plaats van te verwijzen naar een id. Dan gebruiken we de enkelvoudige term, resource.

resource :hotels

Wanneer je meerdere resources moet definiëren,

resources :hotels, :rooms wat hetzelfde werkt als

resources :hotels,resources :rooms

Geneste Resources

Soms hebben we geneste routes, /hotels/:id/rooms die het resultaat zijn van resources die logischerwijs kinderen van andere resources zijn. Stel bijvoorbeeld dat je applicatie deze modellen bevat:

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

In dat geval declareren we onze resources op deze manier,

resources :hotels do resources :roomsend

Deze declaratie helpt ons toegang te krijgen tot de geneste URL’s zoals /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new enz

Verdere studie

Als je dieper in routing wilt duiken, kun je Rails Routing van buitenaf bekijken http://guides.rubyonrails.org/routing.html.

Omslagfoto door Javier Allegue Barros op Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

Geef een antwoord Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Archieven

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties 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