Skip to content

Archives

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Categories

  • Sem categorias
Trend RepositoryArticles and guides
Articles

Routing in Rails

On Janeiro 18, 2022 by admin
  • O que exatamente é roteamento?
  • Como é feito o roteamento em Ruby on Rails?
  • Tipos de métodos de solicitação HTTP
  • Descodificação da requisição http
  • Definindo recursos
  • Recursos únicos e múltiplos
  • Recursos aninhados
  • Estudo Adicional

O que exatamente é roteamento?

Quando há uma requisição HTTP do usuário para a aplicação, ela deve ser direcionada para o controlador correto. Você pode imaginar um roteador como um recepcionista em quem você se conecta à pessoa certa para conversar.

Como é feito o roteamento em Ruby on Rails?

Em Rails, as rotas da sua aplicação vivem em config/routes.rb. O roteador Rails reconhece URLs e os despacha para a ação de um controlador. Ele também pode gerar caminhos e URLs, evitando a necessidade de codificar strings hardcode em suas views. Vamos considerar uma aplicação para reservar quartos em diferentes Hotéis e dar uma olhada em como isso funciona.

Tipos de métodos de solicitação HTTP

A aplicação recebe uma solicitação HTTP que carrega consigo um método que poderia ser:

GET – Recuperar um recurso

POST – Criar um recurso

PUT – Atualizar completamente um recurso

PATCH – Atualizar parcialmente um recurso

DELETE – Apagar um recurso

Estes métodos determinam qual método de ação do controlador é chamado.

Descodificação da requisição http

Se a aplicação receber a requisição, GET /hotels/1. O pedido é enviado para o controlador de hotéis show ação com { id: '1' } em params.

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

>Similiarmente,

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 você quiser listar todas as rotas da sua aplicação você pode usar rails routes no seu terminal e se você quiser listar rotas de um recurso específico, você pode usar rails routes | grep hotel. Isto irá listar todas as rotas do Hotel.

Definindo recursos

Como a recepcionista mantém um registo de todas as reservas, a aplicação também tem o seu próprio registo em config/routes.rb.

Rails.application.routes.draw do resources :hotelsend

Ao escrever resources :hotels criamos todas as sete rotas diferentes na sua aplicação, todo o mapeamento para o controlador do Hotels como mencionado acima.

Se o seu controlador tem apenas algumas destas acções pode alterar a mesma com as seguintes palavras-chave.

A palavra-chave inclui apenas as acções mencionadas.resources :hotels, only:

Existe também a palavra-chave excepto para nomear as que não quer incluir.

resources :hotels, except: >

Recursos únicos e múltiplos

Algumas vezes temos um único recurso ou seja, só temos de aceder a uma única página em vez de referenciar uma id. É quando usamos o termo singular, resource.

resource :hotels

>

Quando você tem que definir vários recursos,

resources :hotels, :rooms que funciona da mesma forma que

resources :hotels,resources :rooms

Recursos aninhados

Algumas vezes temos rotas aninhadas, /hotels/:id/rooms que são o resultado de recursos que são logicamente filhos de outros recursos. Por exemplo, suponha que sua aplicação inclua esses modelos:

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

Nesse caso, declararemos nossos recursos dessa forma,

resources :hotels do resources :roomsend

Essa declaração nos ajuda a acessar as URLs aninhadas como /hotels/:id/rooms , /hotels/:id/rooms/:id , /hotels/:id/rooms/new etc

Estudo Adicional

Se você quiser se aprofundar no roteamento, você pode se referir ao Rails Routing de fora em http://guides.rubyonrails.org/routing.html.

Cobrir Foto de Javier Allegue Barros em Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Arquivo

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Meta

  • Iniciar sessão
  • Feed de entradas
  • Feed de comentários
  • 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