Hoppa till innehåll

Archives

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

Categories

  • Inga kategorier
Trend RepositoryArticles and guides
Articles

Routing i Rails

On januari 18, 2022 by admin
  • Vad exakt är routing?
  • Hur görs routing i Ruby on Rails?
  • Typer av HTTP-förfrågningsmetoder
  • Avkodning av http-förfrågan
  • Definiera resurser
  • Enstaka och flera resurser
  • Nested Resources
  • Vidare studier

Vad exakt är routing?

När användaren skickar en HTTP-förfrågan till applikationen ska den dirigeras till rätt controller. Du kan föreställa dig en router som en receptionist på som kopplar dig till rätt person att prata med.

Hur görs routing i Ruby on Rails?

I Rails finns applikationens rutter i config/routes.rb. Rails-routern känner igen webbadresser och skickar dem till en controllers åtgärd. Den kan också generera sökvägar och URL:er, vilket gör att du slipper hårdkoda strängar i dina vyer. Låt oss ta en applikation för att boka rum på olika hotell och ta en titt på hur detta fungerar.

Typer av HTTP-förfrågningsmetoder

Programmet tar emot en HTTP-förfrågan som har med sig en metod som kan vara:

GET – Hämta en resurs

POST – Skapa en resurs

PUT – Uppdatera en resurs fullständigt

PATCH – Uppdatera en resurs delvis

DELETE – Ta bort en resurs

De här metoderna bestämmer vilken handlingsmetod för kontrollern som anropas.

Avkodning av http-förfrågan

Om programmet tar emot förfrågan, GET /hotels/1. Begäran skickas till hotellkontrollantens show åtgärd med { id: '1' } i params.

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

Samma sak,

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: Om du någonsin vill lista alla rutter i ditt program kan du använda rails routes på din terminal och om du vill lista rutter för en specifik resurs kan du använda rails routes | grep hotel. Detta kommer att lista alla vägar för Hotel.

Definiera resurser

Som receptionisten har ett register över alla bokningar har även programmet ett eget register i config/routes.rb.

Rails.application.routes.draw do resources :hotelsend

Genom att skriva resources :hotels skapar vi alla sju olika vägar i ditt program, som alla mappas till hotellkontrollern som nämnts ovan.

Om din styrenhet bara har några få av dessa åtgärder kan du ändra dem med följande nyckelord:

Nyckelordet endast omfattar endast de åtgärder som nämns.resources :hotels, only:

Det finns också nyckelordet utom för att namnge de som du inte vill inkludera.

resources :hotels, except:

Enstaka och flera resurser

Ibland har vi en enda resurs dvs. vi behöver bara få tillgång till en enda sida i stället för att hänvisa till ett id. Det är då vi använder singulära termen, resurs.

resource :hotels

När du måste definiera flera resurser,

resources :hotels, :rooms vilket fungerar på samma sätt som

resources :hotels,resources :rooms

Nested Resources

Undertiden har vi nested routes, /hotels/:id/rooms som är ett resultat av resurser som logiskt sett är barn till andra resurser. Anta till exempel att din applikation innehåller dessa modeller:

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

I så fall kommer vi att deklarera våra resurser på följande sätt,

resources :hotels do resources :roomsend

Denna deklaration hjälper oss att få tillgång till de nästlade URL:erna som /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new etc

Vidare studier

Om du vill fördjupa dig i routning kan du läsa Rails Routing from the outside in http://guides.rubyonrails.org/routing.html.

Omslagsbild av Javier Allegue Barros på Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Arkiv

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

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • 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
  • 日本語日本語

Upphovsrätt Trend Repository 2022 | Tema av ThemeinProgress | Drivs med WordPress