0Pricing
Ruby Academy · Lezione

Viste e rendering

Restituire risposte

Viste e rendering è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.

Che cos'è una view

Una view è un template che produce la risposta inviata al client, di solito in HTML. Trasforma i dati preparati dal controller in una pagina.

  • Le view si trovano in app/views.
  • Sono raggruppate per controller, ad esempio in app/views/articles.
  • Il nome del template predefinito corrisponde a quello dell'azione.

Rendering basato sulle convenzioni

Per impostazione predefinita, un'azione esegue il rendering del template che porta il suo nome. L'azione index di ArticlesController esegue il rendering di app/views/articles/index.html.erb senza alcuna chiamata esplicita a render.

def index
  @articles = Article.all
  # automatically renders articles/index.html.erb
end

Template ERB

Il linguaggio per i template predefinito è ERB (Embedded Ruby). Combina HTML e Ruby:

  • <%= ... %> produce un valore.
  • <% ... %> esegue il codice senza produrre output.
<h1>Articles</h1>
<% @articles.each do |article| %>
  <p><%= article.title %></p>
<% end %>

Layout

Un layout racchiude ogni view in un markup condiviso, come intestazione, navigazione e piè di pagina. Il layout predefinito app/views/layouts/application.html.erb include <%= yield %>, nel punto in cui viene inserita la view dell'azione.

<!-- application.html.erb -->
<html>
  <body>
    <%= yield %>
  </body>
</html>

Partial

Un partial è un frammento di template riutilizzabile il cui nome del file inizia con un trattino basso. Ne esegua il rendering con render per evitare di duplicare il markup.

<!-- _article.html.erb -->
<p><%= article.title %></p>

<!-- in index.html.erb -->
<%= render "article", article: @article %>

Rendering di collection

Passare una collection a render esegue il rendering del partial una volta per elemento: è una scorciatoia idiomatica. Rails deduce il nome del partial dal modello.

<%= render @articles %>

<!-- renders _article.html.erb for each article -->

Helper delle view

Rails fornisce helper che generano HTML in modo sicuro: link_to per i link, form_with per i moduli e image_tag per le immagini. Mantengono i template ordinati e coerenti.

<%= link_to "View", article_path(@article) %>
<%= image_tag "logo.png" %>

Risposte in altri formati

I controller possono restituire non solo HTML. render json: invia JSON per le API, mentre respond_to gestisce formati diversi in base a quello richiesto dal client.

def show
  @article = Article.find(params[:id])
  render json: @article
end

Blocchi respond_to

Utilizzi respond_to per gestire più formati in una sola azione. La stessa azione può restituire HTML a un browser e JSON a un client API.

def show
  @article = Article.find(params[:id])
  respond_to do |format|
    format.html
    format.json { render json: @article }
  end
end

Codici di stato

Imposti lo stato HTTP di una risposta con status:. Utilizzi :ok (200), :created (201) dopo una creazione riuscita e :unprocessable_entity (422) quando la convalida fallisce, affinché i client reagiscano correttamente.

render :new, status: :unprocessable_entity
render json: @article, status: :created

Escape e sicurezza

ERB esegue automaticamente l'escape HTML dell'output di <%= %>, prevenendo gli attacchi cross-site scripting causati dai dati degli utenti. Contrassegni i contenuti come sicuri con raw o html_safe solo quando si fida completamente della loro origine; usarli in modo improprio riapre le vulnerabilità XSS.

Verifica rapida

Verifichi la Sua comprensione delle view e del rendering.

Riepilogo: view e rendering

Ha imparato a restituire risposte:

  • Per convenzione, le azioni eseguono il rendering della view ERB corrispondente.
  • I layout racchiudono le view, mentre i partial riutilizzano i frammenti.
  • Helper come link_to e form_with costruiscono HTML.
  • render json: e respond_to gestiscono le API; imposti codici di stato appropriati.
  • ERB esegue l'escape dell'output per prevenire gli attacchi XSS.

Il corso Controllers and Routing è terminato.

Domande Frequenti

La lezione «Viste e rendering» è gratuita?

Sì — il testo completo di «Viste e rendering» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.

Cosa imparerò in «Viste e rendering»?

Restituire risposte Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ruby Academy?

Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Viste e rendering»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ruby Academy?

Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Route e risorse
  2. Controller e action
  3. Strong Parameters
  4. Viste e rendering
← Torna a Ruby Academy