ActionView: templates
ERB (Embedded Ruby) é um arquivo HTML com pequenos trechos de Ruby dentro, e ele roda do zero a cada requisição. O curso lê views reais deste projeto, começando pelo partners.html.erb. Ele separa as duas tags: <%= %> imprime um resultado, e <% %> roda código sem saída. Mostra como uma view lê as variáveis de instância que a action definiu, por que o Rails escapa a saída por padrão e quando o html_safe muda isso. Depois abre uma view de articles#show e lê linhas do layout da aplicação.
O que você vai aprender
- ✓O que é ERB e como um arquivo .html.erb renderiza uma vez por requisição
- ✓A diferença entre as tags <%= %> e <% %>
- ✓Condições e loops em ERB com tags de abrir, imprimir e fechar
- ✓Como uma view lê as variáveis de instância da action, e por que as não definidas não imprimem nada
- ✓Escape padrão da saída, cross-site scripting e html_safe
- ✓Como a linha de título do layout e o content_for usam as mesmas tags
O que é ERB?
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…
Ler a aula completa grátis →Currículo
7 aulasO que é ERB?
Apresenta o ERB como HTML com Ruby embutido, renderizado do zero a cada requisição com as variáveis da action.
<%= %> vs <% %>: duas tags, uma diferença
Separa o <%= %>, que imprime um resultado, do <% %>, que roda condições, loops e atribuições sem saída.
Lendo uma variável de instância numa view
Mostra uma view lendo @partners pelo nome, dividindo com select e reject, e por que variável ausente é nil.
Escaping e html_safe
Explica por que o <%= %> escapa a saída por padrão contra cross-site scripting e como o html_safe desliga isso.
Finalmente abrindo articles#show
Abre o articles/show.html.erb, que imprime @article.title e escolhe um ramo com @article.published? usando tags conhecidas.
ERB no layout real deste projeto
Lê a linha de título do layout da aplicação e mostra como uma view guarda esse valor com content_for.
Juntando o ERB
Lê um trecho que junta as duas tags, variáveis de instância e escape, e recapitula como as peças se encaixam.