config/routes.rb: o mapa de pontos de entrada
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.rbdecide 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.
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.