Ruby Academy · Lektion

Vyer och rendering

Returnera svar.

Lektion 4 av 413 steg

Vyer och rendering är en gratis lektion i Ruby Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Ruby Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Ruby Academy innehåller totalt 4 lektioner.

Vad är en vy?

En vy är en mall som skapar svaret som skickas till klienten, vanligtvis HTML. Den omvandlar data som en controller har förberett till en sida.

  • Vyer finns i app/views.
  • De grupperas efter controller, till exempel app/views/articles.
  • Standardmallens namn motsvarar actionens namn.

Konventionsbaserad rendering

Som standard renderar en action mallen som har samma namn som actionen. Actionen index i ArticlesController renderar app/views/articles/index.html.erb utan något uttryckligt anrop till render.

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

ERB-mallar

Det förvalda mallspråket är ERB (Embedded Ruby). Det blandar HTML med Ruby:

  • <%= ... %> skriver ut ett värde.
  • <% ... %> kör kod utan att skriva ut något.
<h1>Articles</h1>
<% @articles.each do |article| %>
  <p><%= article.title %></p>
<% end %>

Layouter

En layout omsluter varje vy med gemensam markup, till exempel sidhuvud, navigering och sidfot. Standardlayouten app/views/layouts/application.html.erb innehåller <%= yield %>, där actionens vy infogas.

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

Partials

En partial är ett återanvändbart fragment av en mall vars filnamn börjar med ett understreck. Rendera den med render för att undvika duplicerad markup.

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

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

Rendera samlingar

Om ni skickar en samling till render renderas partialen en gång per objekt, vilket är en idiomatisk genväg. Rails härleder partialens namn från modellen.

<%= render @articles %>

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

Vyhjälpare

Rails tillhandahåller hjälpmetoder som genererar HTML på ett säkert sätt: link_to för länkar, form_with för formulär och image_tag för bilder. De håller mallarna rena och konsekventa.

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

Svara med andra format

Controllers kan returnera mer än HTML. render json: skickar JSON för API:er, och respond_to hanterar olika format baserat på vad klienten begärde.

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

respond_to-block

Använd respond_to för att hantera flera format i samma action. Samma action kan returnera HTML till en webbläsare och JSON till en API-klient.

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

Statuskoder

Ange HTTP-statusen för ett svar med status:. Använd :ok (200), :created (201) efter en lyckad skapelse och :unprocessable_entity (422) när valideringen misslyckas, så att klienterna reagerar korrekt.

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

Escaping och säkerhet

ERB HTML-escapar automatiskt resultatet från <%= %>, vilket förhindrar cross-site scripting från användardata. Markera endast innehåll som säkert med raw eller html_safe när ni litar helt på det; felaktig användning öppnar XSS-sårbarheter på nytt.

Snabbtest

Testa er förståelse av vyer och rendering.

Sammanfattning: Vyer och rendering

Ni har lärt er att returnera svar:

  • Actions renderar en matchande ERB-vy enligt konvention.
  • Layouter omsluter vyer och partials återanvänder fragment.
  • Hjälpmetoder som link_to och form_with bygger HTML.
  • render json: och respond_to tillhandahåller API-svar; ange korrekta statuskoder.
  • ERB escapar resultatet för att förhindra XSS.

Därmed är kursen Controllers och routing slutförd.

Gratis att börja

Lär dig Ruby med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
29
Lektioner
109

Vanliga frågor

Är lektionen ”Vyer och rendering” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Ruby Academy, inklusive ”Vyer och rendering”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Ruby Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Vyer och rendering”?

Returnera svar. Ni övar på Ruby Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Ruby Academy?

Du behöver inga förkunskaper. Utbildningen i Ruby Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Vyer och rendering”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Ruby Academy-lektionen?

Ja. Varje Ruby Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Rutter och resurser
  2. Controllers och actions
  3. Strong Parameters
  4. Vyer och rendering
← Tillbaka till Ruby Academy