0Pricing
Ruby Academy · Aula

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
end

Modelos 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
end

Blocos 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
end

Có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: :created

Escape 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_to e form_with constroem HTML.
  • render json: e respond_to fornecem 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

  1. Rotas e recursos
  2. Controladores e ações
  3. Parâmetros fortes
  4. Visões e renderização
← Voltar para Ruby Academy