O que é ERB?
Uma página de roadmap que mostra um botão diferente para cada usuário
A página de roadmap deste projeto, app/views/catalog/courses/index.html.erb, mostra "Continuar" para quem está no meio de um curso e "Começar" para quem não começou, pelo partial do card de curso, no mesmo caminho de requisição. Um arquivo .html puro não faz isso: todo visitante recebe o mesmo texto. Os arquivos do roadmap terminam em .html.erb, e essas três letras são o motivo de eles poderem decidir em vez de só afirmar.
ERB quer dizer Embedded Ruby, Ruby embutido: um arquivo HTML comum com pequenos trechos de Ruby dentro. O app/views/public/pages/partners.html.erb deste projeto, o arquivo para o qual Controller: ações apontou por quatro aulas sem abrir, é um deles. Aqui está reduzido à forma mais simples:
<% if @partners.any? %>
<p><%= t("partners.founding_heading") %></p>
<% end %>
O trecho mistura HTML puro (<p>), uma condição Ruby que decide se aquele <p> existe e uma expressão Ruby cujo resultado é impresso dentro dele. O arquivo real monta o mesmo formato com mais marcação em volta. A aula 2 separa esses dois tipos de Ruby; por enquanto o formato só precisa parecer familiar.
Renderizado uma vez por requisição
Controller: ações mostrou que partners roda uma vez por requisição, do começo, sem nada da visita anterior. O arquivo .html.erb que ela renderiza roda no mesmo ritmo. Cada requisição a /partners roda o Ruby de partners.html.erb do zero, usando os @tiers, @partners e @inquiry que a action daquela requisição acabou de definir. A aula 3 mostra como uma view os lê.
Para onde este curso vai
- A aula 2 separa as duas tags do ERB: uma imprime um resultado, a outra só roda código.
- A aula 3 mostra uma view real lendo uma variável de instância que sua action definiu.
- A aula 4 cobre por que o Rails escapa essa saída por padrão, e o
html_safe. - A aula 5 abre o
articles#show, o arquivo para o qual toda aula de renderização implícita de Controller: ações apontou. - A aula 6 lê o arquivo de layout deste projeto como mais um exemplo.
- A aula 7 junta o curso e diz o que vem a seguir.
Continue com a aula 2
<%= %> vs <% %>: duas tags, uma diferença
Separa o <%= %>, que imprime um resultado, do <% %>, que roda condições, loops e atribuições sem saída.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.