O arquivo que envolve toda view

Prévia grátis 2 min de leitura

A metade que falta em toda página

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 invólucro dentro do qual toda view desta app renderiza.

Um wrapper, toda view

application.html.erb
+-----------------------------+
| <html><head>...</head>       |
| <body>                       |
|   <navbar>                   |
|   +-----------------------+  |
|   |  partners.html.erb    |  |
|   |  (ou qualquer outra view) |
|   +-----------------------+  |
|   <footer>                   |
| </body></html>               |
+-----------------------------+

Qualquer view que uma action renderize, partners.html.erb, o exemplo articles/show.html.erb ou outra, se encaixa no mesmo invólucro. Nenhuma view repete a tag <html>, os links de estilo ou a navbar; o layout os fornece uma vez para toda página.

A única peça ainda não explicada

A aula 6 do curso passado citou uma linha deste arquivo, <%= content_for(:title).presence || "Newbie on Rails" %>, sem explicar como o conteúdo de uma view vai parar dentro do invólucro. Esse é o assunto deste curso: yield, a palavra que insere uma view no layout.

Para onde este curso vai

  • A aula 2 cobre o yield simples, inserindo o conteúdo renderizado da view atual.
  • A aula 3 cobre yield(:name) nomeado e content_for(:name), espaços opcionais que uma view pode escolher preencher.
  • A aula 4 compara este yield com o de Blocos Ruby (do..end).
  • A aula 5 lê o arquivo de layout deste projeto.
  • A aula 6 observa uma view real preenchendo um desses espaços.
  • A aula 7 junta tudo e nomeia o que vem a seguir.
Aula 1 de 7 · grátis

Continue com a aula 2

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.

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

Digite para buscar...