Skip to content

Archives

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Categories

  • Nincs kategória
Trend RepositoryArticles and guides
Articles

Routing a Railsben

On január 18, 2022 by admin
  • Mi is pontosan a routing?
  • Hogyan történik az útválasztás a Ruby on Railsben?
  • A HTTP-kérelmezési módszerek típusai
  • A http kérés dekódolása
  • Erőforrások definiálása
  • Egy és több erőforrás
  • Beágyazott erőforrások
  • További tanulmányozás

Mi is pontosan a routing?

Amikor egy HTTP kérés érkezik a felhasználótól az alkalmazáshoz, azt a megfelelő vezérlőhöz kell irányítani. Az útválasztót úgy képzelhetjük el, mint egy recepcióst, aki összeköt a megfelelő emberrel, akivel beszélhetünk.

Hogyan történik az útválasztás a Ruby on Railsben?

A Railsben az alkalmazás útvonalai a config/routes.rb-ben élnek. A Rails útválasztó felismeri az URL-eket, és elküldi őket egy vezérlő akciójához. Az útvonalakat és URL-eket is képes generálni, így elkerülhető a karakterláncok keménykódolása a nézetekben. Vegyünk egy olyan alkalmazást, amely különböző szállodákban foglal szobákat, és nézzük meg, hogyan működik ez.

A HTTP-kérelmezési módszerek típusai

Az alkalmazás egy HTTP-kérelmet kap, amely egy módszert hordoz magában, amely lehet:

GET – erőforrás lekérdezése

POST – erőforrás létrehozása

PUT – erőforrás teljes frissítése

PATCH – erőforrás részleges frissítése

DELETE – erőforrás törlése

Ezek a módszerek határozzák meg, hogy melyik vezérlő műveleti módszerét hívja meg.

A http kérés dekódolása

Ha az alkalmazás megkapja a kérést, GET /hotels/1. A kérést a hotelek vezérlőjének show akciójára küldi a { id: '1' } paraméterekkel.

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

Hasonlóképpen,

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'

TIPP: Ha valaha az alkalmazás összes útvonalát ki akarjuk listázni, akkor a rails routes terminálon használhatjuk, ha pedig egy adott erőforrás útvonalait akarjuk listázni, akkor a rails routes | grep hotel-t használhatjuk. Ez a Hotel összes útvonalát kilistázza.

Erőforrások definiálása

Mint ahogy a recepciós is nyilvántartást vezet az összes foglalásról, az alkalmazásnak is megvan a saját nyilvántartása a config/routes.rb-ben.

Rails.application.routes.draw do resources :hotelsend

A resources :hotels írásával létrehozzuk mind a hét különböző útvonalat az alkalmazásban, amelyek mind a Hotels vezérlőhöz kapcsolódnak, ahogy fentebb említettük.

Ha a vezérlődnek csak néhány ilyen művelete van, akkor ugyanezt a következő kulcsszavakkal módosíthatod.

A kulcsszó csak az említett műveleteket tartalmazza.resources :hotels, only:

Létezik a except kulcsszó is, amellyel megnevezhetjük azokat, amelyeket nem akarunk bevonni.

resources :hotels, except:

Egy és több erőforrás

Néha egyetlen erőforrásunk van, azaz csak egyetlen oldalhoz kell hozzáférnünk az id-re való hivatkozás helyett. Ilyenkor egyes számban használjuk az erőforrás kifejezést.

resource :hotels

Amikor több erőforrást kell definiálnunk,

resources :hotels, :rooms ami ugyanúgy működik, mint

resources :hotels,resources :rooms

Beágyazott erőforrások

Néha vannak beágyazott útvonalak,/hotels/:id/rooms amelyek olyan erőforrásokból adódnak, amelyek logikailag más erőforrások gyermekei. Tegyük fel például, hogy az alkalmazásunk ezeket a modelleket tartalmazza:

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

Az erőforrásainkat ebben az esetben így fogjuk deklarálni,

resources :hotels do resources :roomsend

Ez a deklaráció segít elérni a beágyazott URL-eket, mint például /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new stb

További tanulmányozás

Ha mélyebben bele akarunk ásni a routingba, akkor a Rails Routing kívülről http://guides.rubyonrails.org/routing.html című fejezetben olvashatunk.

Cover Photo by Javier Allegue Barros on Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • 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