config/routes.rb: o mapa de pontos de entrada

Prévia grátis 2 min de leitura

Uma rota que já apareceu antes

Em Console Rails (IRB), o app.get "/articles/1" só funcionou porque já existia uma entrada correspondente em algum lugar. Esse lugar é o config/routes.rb, o arquivo que decide a quais URLs uma app responde e qual action de controller atende cada uma.

# config/routes.rb
Rails.application.routes.draw do
  # toda rota que essa app responde está listada dentro desse bloco
end

Rails.application.routes.draw do ... end é a forma inteira do arquivo: um bloco em que cada linha declara mais uma coisa a que a app responde. Nada fora do bloco é rota.

O que está dentro do arquivo deste projeto

Rails.application.routes.draw do
  get "up" => "rails/health#show", as: :rails_health_check
  # ... muitas outras rotas ...
  root "public/pages#home"
end

Esse é um recorte do config/routes.rb deste projeto, o arquivo citado em Rails CLI: rails new. Cada linha liga um padrão de URL e um verbo HTTP a uma action de controller. As aulas 2 a 5 mostram como essas ligações são escritas.

Por que uma rota precisa existir primeiro

Antes de qualquer controller, model ou view rodar, a URL e o verbo da requisição precisam casar com algo neste arquivo. Sem correspondência, a requisição falha no roteamento e nunca chega ao código da app.

Pontos-chave

  • config/routes.rb decide a quais URLs a app responde e qual action atende cada uma.
  • Toda rota mora dentro de Rails.application.routes.draw do ... end; nada fora desse bloco é uma rota.
  • O routes.rb deste projeto tem a mesma forma do de qualquer app Rails.
  • Uma requisição precisa casar com uma rota antes de qualquer código de controller, model ou view rodar.
Aula 1 de 7 · grátis

Continue com a aula 2

Escrevendo uma rota de cada vez

Escreve rotas avulsas com verbo, padrão de URL e action, e apresenta segmentos dinâmicos como :username.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...