Visões e renderização
Retorne respostas.
Visões e renderização é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
O que é uma visualização?
Uma visualização é um modelo que produz a resposta enviada ao cliente, geralmente em HTML. Ela transforma os dados preparados por um controlador em uma página.
- As visualizações ficam em
app/views. - Elas são agrupadas por controlador, como em
app/views/articles. - O nome do modelo padrão corresponde à ação.
Renderização baseada em convenções
Por padrão, uma ação renderiza o modelo que tem o mesmo nome que ela. A ação index de ArticlesController renderiza app/views/articles/index.html.erb sem uma chamada explícita a render.
def index
@articles = Article.all
# automatically renders articles/index.html.erb
endModelos ERB
A linguagem de modelos padrão é ERB (Ruby incorporado). Ela combina HTML com Ruby:
<%= ... %>exibe um valor.<% ... %>executa código sem exibir uma saída.
<h1>Articles</h1>
<% @articles.each do |article| %>
<p><%= article.title %></p>
<% end %>Leiautes
Um leiaute envolve cada visualização com marcação compartilhada, como cabeçalho, navegação e rodapé. O app/views/layouts/application.html.erb padrão inclui <%= yield %>, onde a visualização da ação é inserida.
<!-- application.html.erb -->
<html>
<body>
<%= yield %>
</body>
</html>Fragmentos reutilizáveis
Um fragmento reutilizável é uma parte de modelo cujo nome de arquivo começa com um sublinhado. Renderize-o com render para evitar a duplicação da marcação.
<!-- _article.html.erb -->
<p><%= article.title %></p>
<!-- in index.html.erb -->
<%= render "article", article: @article %>Renderização de coleções
Passar uma coleção para render renderiza o fragmento uma vez para cada elemento, um atalho idiomático. O Rails infere o nome do fragmento a partir do modelo.
<%= render @articles %>
<!-- renders _article.html.erb for each article -->Auxiliares de visualização
O Rails fornece auxiliares que geram HTML com segurança: link_to para links, form_with para formulários e image_tag para imagens. Eles mantêm os modelos limpos e consistentes.
<%= link_to "View", article_path(@article) %>
<%= image_tag "logo.png" %>Respondendo com outros formatos
Os controladores podem retornar mais do que HTML. render json: envia JSON para APIs, e respond_to fornece formatos diferentes com base no que o cliente solicitou.
def show
@article = Article.find(params[:id])
render json: @article
endBlocos de respond_to
Use respond_to para lidar com vários formatos em uma única ação. A mesma ação pode retornar HTML para um navegador e JSON para um cliente de API.
def show
@article = Article.find(params[:id])
respond_to do |format|
format.html
format.json { render json: @article }
end
endCódigos de status
Defina o status HTTP de uma resposta com status:. Use :ok (200), :created (201) após uma criação bem-sucedida e :unprocessable_entity (422) quando a validação falhar, para que os clientes reajam corretamente.
render :new, status: :unprocessable_entity
render json: @article, status: :createdEscape e segurança
O ERB faz escape automático do HTML na saída de <%= %>, o que impede ataques de script entre sites causados por dados do usuário. Só marque o conteúdo como seguro com raw ou html_safe quando confiar plenamente nele; o uso indevido desses recursos reabre brechas de XSS.
Verificação rápida
Teste sua compreensão sobre visualizações e renderização.
Recapitulação: Visualizações e renderização
Você aprendeu a retornar respostas:
- As ações renderizam, por convenção, uma visualização ERB correspondente.
- Os leiautes envolvem as visualizações; os fragmentos reutilizam partes.
- Auxiliares como
link_toeform_withconstroem HTML. render json:erespond_tofornecem APIs; defina códigos de status apropriados.- O ERB faz escape da saída para impedir XSS.
Isso conclui o curso de Controladores e Roteamento.
Perguntas Frequentes
A aula “Visões e renderização” é grátis?
Sim — o texto completo de “Visões e renderização” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “Visões e renderização”?
Retorne respostas. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Visões e renderização”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Rotas e recursos
- Controladores e ações
- Parâmetros fortes
- Visões e renderização