Layouts e yield
O curso mostra como um layout do Rails envolve toda view. O ponto de partida é app/views/layouts/application.html.erb, o arquivo com a tag html, o head, a navbar e o rodapé que toda página compartilha. O yield simples insere a saída renderizada da view atual. O yield(:nome) lê espaços opcionais que as views preenchem com content_for, e o content_for? permite cair num valor padrão. As aulas comparam esse yield com a palavra-chave de blocos do Ruby no código-fonte do Rails 8.1. Depois leem o layout real do projeto e uma view que preenche seus espaços.
O que você vai aprender
- ✓O que é um arquivo de layout e como ele envolve toda view
- ✓Como o yield simples insere a view renderizada da action atual
- ✓Como yield(:nome) e content_for preenchem espaços nomeados opcionais
- ✓Como o content_for? dá um valor padrão a um espaço
- ✓Por que o yield do layout é a mesma palavra-chave Ruby que chama um bloco
- ✓Como o layout real do projeto e as views se ligam por nomes de espaço em comum
O arquivo que envolve toda view
O partners.html.erb, aberto no curso passado, nunca cita uma tag <html>, um <head>, uma navbar ou um rodapé. Visite /partners num navegador e está tudo lá, o mesmo cabeçalho e rodapé que toda outra página tem. Essa metade que falta mora num arquivo, app/views/layouts/application.html.erb, o…
Ler a aula completa grátis →Currículo
7 aulasO arquivo que envolve toda view
Mostra como app/views/layouts/application.html.erb fornece a tag html, o head, a navbar e o rodapé de toda view.
yield simples: inserindo a view atual
Explica como o yield simples insere a view renderizada da action atual dentro do main, a cada requisição.
yield(:nome) e content_for
Apresenta yield(:nome), content_for e content_for?, que permitem a views preencher espaços opcionais, que podem cair num valor padrão quando existe um.
O yield do Ruby vs. este yield: a mesma palavra-chave
Usa o código-fonte do Rails 8.1 para mostrar que o yield do layout é a palavra-chave Ruby chamando um bloco.
O layout real deste projeto, do início ao fim
Lê o layout do projeto do início ao fim, com suas quatro chamadas yield e os padrões de cada uma.
content_for a partir de uma view real
Acompanha views reais que preenchem :title, :body_class e :main_class, ligadas ao layout só pelos nomes em comum.
Juntando os layouts
Revisa yield, espaços nomeados e content_for juntos, e aponta as chamadas render que o layout ainda contém.