Salta al contenuto

Archivi

  • Gennaio 2022
  • Dicembre 2021
  • Novembre 2021
  • Ottobre 2021
  • Settembre 2021

Categorie

  • Nessuna categoria
Trend RepositoryArticles and guides
Articles

Routing in Rails

Il Gennaio 18, 2022 da admin
  • Cos’è esattamente il routing?
  • Come si fa il routing in Ruby on Rails?
  • Tipi di metodi di richiesta HTTP
  • Decodifica della richiesta http
  • Definizione delle risorse
  • Risorse singole e multiple
  • Risorse annidate
  • Ulteriori studi

Cos’è esattamente il routing?

Quando c’è una richiesta HTTP dall’utente all’applicazione, dovrebbe essere indirizzata al giusto controller. Puoi immaginare un router come un centralinista che ti collega alla persona giusta con cui parlare.

Come si fa il routing in Ruby on Rails?

In Rails, le rotte della tua applicazione vivono in config/routes.rb. Il router di Rails riconosce gli URL e li invia all’azione di un controller. Può anche generare percorsi e URL, evitando la necessità di inserire stringhe hardcode nelle vostre viste. Consideriamo un’applicazione per prenotare camere in diversi hotel e diamo un’occhiata a come funziona.

Tipi di metodi di richiesta HTTP

L’applicazione riceve una richiesta HTTP che porta con sé un metodo che potrebbe essere:

GET – Recupera una risorsa

POST – Crea una risorsa

PUT – Aggiorna completamente una risorsa

PATCH – Aggiorna parzialmente una risorsa

DELETE – Elimina una risorsa

Questi metodi determinano quale metodo di azione del controller viene chiamato.

Decodifica della richiesta http

Se l’applicazione riceve la richiesta, GET /hotels/1. La richiesta viene inviata all’azione show del controllore Hotel con { id: '1' } nei params.

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

Similmente,

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: Se vuoi elencare tutti i percorsi della tua applicazione puoi usare rails routes sul tuo terminale e se vuoi elencare i percorsi di una risorsa specifica, puoi usare rails routes | grep hotel. Questo elencherà tutte le rotte di Hotel.

Definizione delle risorse

Come il receptionist tiene un record di tutte le prenotazioni, anche l’applicazione ha il suo record in config/routes.rb.

Rails.application.routes.draw do resources :hotelsend

Scrivendo resources :hotels creiamo tutte e sette le diverse rotte nella tua applicazione, tutte mappate al controller Hotel come detto sopra.

Se il tuo controller ha solo alcune di queste azioni puoi modificare lo stesso con le seguenti parole chiave.

La parola chiave include solo le azioni menzionate.resources :hotels, only:

C’è anche la parola chiave tranne per nominare quelle che non vuoi includere.

resources :hotels, except:

Risorse singole e multiple

A volte abbiamo una singola risorsa, cioè dobbiamo accedere solo a una singola pagina invece di fare riferimento a un id. Questo è quando usiamo il termine singolare, risorsa.

resource :hotels

Quando devi definire risorse multiple,

resources :hotels, :rooms che funziona come

resources :hotels,resources :rooms

Risorse annidate

A volte abbiamo percorsi annidati, /hotels/:id/rooms che sono il risultato di risorse che sono logicamente figli di altre risorse. Per esempio, supponiamo che la vostra applicazione includa questi modelli:

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

In tal caso dichiareremo le nostre risorse in questo modo,

resources :hotels do resources :roomsend

Questa dichiarazione ci aiuta ad accedere agli URL annidati come /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new ecc

Ulteriori studi

Se volete scavare più a fondo nel routing, potete fare riferimento a Rails Routing dall’esterno in http://guides.rubyonrails.org/routing.html.

Foto di copertina di Javier Allegue Barros su Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Archivi

  • Gennaio 2022
  • Dicembre 2021
  • Novembre 2021
  • Ottobre 2021
  • Settembre 2021

Meta

  • Accedi
  • Feed dei contenuti
  • Feed dei commenti
  • 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 | Tema da ThemeinProgress | Offerto orgogliosamente da WordPress