Namespacing de layout
O curso acompanha como um app Rails decide qual layout envolve cada página. As páginas públicas renderizam dentro do application.html.erb, e toda página em /admin renderiza dentro do admin.html.erb. A troca é uma linha, layout "admin", no Admin::BaseController. As aulas leem o código instalado do ActionView::Layouts para mostrar como os controllers Admin:: aninhados herdam esse valor pelo class_attribute. Também mostram como os controllers sem chamada layout recorrem ao application.html.erb por convenção. Por fim, comparam os dois arquivos linha a linha e tratam das formas com Symbol, Proc e render layout: false.
O que você vai aprender
- ✓O que o método de classe layout faz e onde ele é declarado
- ✓Como o class_attribute passa um layout para os controllers Admin:: aninhados
- ✓Como o Rails acha o application.html.erb quando nenhum layout é declarado
- ✓As diferenças e os partials compartilhados entre o layout público e o de admin
- ✓Layouts com Symbol e Proc, e o render layout: false numa única ação
Dois layouts, uma linha que alterna entre eles
app/views/layouts/application.html.erb e app/views/layouts/admin.html.erb. Toda página pública, como o roadmap, um curso ou uma aula, é envolvida pelo primeiro. Toda página em /admin, como o dashboard ou o editor de cursos, é envolvida pelo segundo: um layout guiado por barra lateral, sem navbar e…
Ler a aula completa grátis →Currículo
7 aulasDois layouts, uma linha que alterna entre eles
Apresenta os layouts público e de admin e a única linha layout "admin" que os separa.
O método de classe layout, declarado uma vez no Admin::BaseController
Explica o layout como método de classe do ActionView::Layouts que grava configuração e não renderiza nada sozinho.
Herança: por que um controller aninhado em Admin:: não precisa redeclarar
Mostra como o class_attribute faz o Admin::Catalog::CoursesController herdar o layout de admin sem chamada layout própria.
O padrão quando nada é declarado: como o application.html.erb é achado
Acompanha a busca por convenção via controller_path que leva os controllers públicos ao layouts/application.html.erb.
Lendo os dois layouts lado a lado
Compara navegação, tags do head, folhas de estilo e modais dos dois layouts, além dos partials compartilhados.
layout como Symbol ou Proc: documentado, e sem uso nos controllers deste app
Trata das formas com Symbol e Proc, sem uso aqui, e do render layout: false por ação no CommentsController.
Juntando tudo: uma declaração, herdada onde vale
Revisa o modelo completo de resolução de layout e fecha com um desafio em Ruby puro que o simula.