Har du någonsin undrat hur Ruby-utvecklare sömlöst blandar in dynamisk logik i sina HTML-mallar? Gå in Inbäddad Ruby (ERB)ERB är en kraftfull templating-motor som gör det möjligt att bädda in Ruby-kod direkt i HTML, vilket gör det möjligt att skapa dynamiska och datadrivna webbsidor. Oavsett om du bygger en enkel blogg eller en komplex webbapplikation är ERB ett verktyg du måste känna till för att Ruby utvecklare.
I den här guiden går vi igenom grunderna i ERB, från dess syntax och installation till praktiska exempel och bästa praxis. I slutet kommer du att ha en solid förståelse för hur du använder ERB för att skapa dynamiska och underhållbara mallar i dina Ruby-projekt. Låt oss dyka in!
Vad är inbäddad Ruby (ERB)?
Embedded Ruby, eller ERB, är ett templating-system som gör att du kan skriva Ruby-kod direkt i HTML-filer. Denna kombination gör det möjligt att generera dynamiskt innehåll, till exempel att visa användarspecifika data eller iterera över en lista med objekt. ERB-filer har vanligtvis filnamnstillägget .erb och bearbetas av Ruby-tolken för att producera den slutliga HTML-utmatningen.
ERB används ofta i Ruby on Rails, där det fungerar som standardmallmotor för rendering av vyer. Det är dock inte begränsat till Rails - ERB kan användas i alla Ruby-projekt för att skapa dynamiska mallar.
Hur fungerar ERB?
ERB använder speciella avgränsare för att skilja Ruby-kod från HTML. Här är en snabb uppdelning av den viktigaste syntaxen:
: Exekverar Ruby-kod utan att skriva ut något.
Exempel: erb
<% if user_signed_in? %>
<p>Välkommen tillbaka!</p>
<% end %>
: Exekverar Ruby-kod och bäddar in resultatet i mallen.
Exempel: erb
<h1>Hallå? <%= @user.name %>!</h1>
: Lägger till kommentarer som ignoreras under renderingen.
Exempel: erb
<%# This is a comment and won't appear in the output %>
Dessa avgränsare gör att du kan blanda Ruby-logik med HTML, vilket gör dina mallar dynamiska och flexibla.
Konfigurera ERB i ett Ruby-projekt
Att använda ERB i ett fristående Ruby-skript är enkelt. Här är hur du kan komma igång:
Kräver erb-biblioteket:
rubin
kräver "erb
Skapa en ERB-mall:
erb
<h1>Välkommen till oss, <%= @name %>!</h1>
Bind data till mallen och rendera den:
rubin
@namn = "Alice"
mall = ERB.new(File.read('mall.erb'))
output = mall.resultat(bindning)
sätter utmatning
I Ruby on Rails är ERB integrerat som standard, så du kan börja använda det direkt i dina vyer.
Viktiga egenskaper hos ERB
ERB har flera funktioner som gör den till en kraftfull templating-motor:
- Partialer: Återanvändbara mallar som kan inkluderas i andra vyer.
Exempel: erb<%= render 'shared/header' %>
- Layouter: Delade strukturer (t.ex. sidhuvud, sidfot) som omsluter dina vyer.
Exempel: erb - Hjälpare: Ruby-metoder som förenklar komplex logik i mallar.
Exempel: rubydef format_date(datum)
date.strftime("%B %d, %Y")
slut - Att undkomma HTML: Förhindrar XSS-attacker genom att rensa användarinmatning.
Exempel: erb<%= h(user_input) %>
Dessa egenskaper gör ERB mångsidig och lämplig för ett brett spektrum av användningsområden.
Vanliga användningsområden för ERB
ERB används ofta i scenarier som:
- Dynamiska webbsidor: Generering av HTML-innehåll baserat på användarinmatning eller databasfrågor.
- Mallar för e-post: Skapa anpassningsbara e-postlayouter med dynamiska data.
- Konfigurationsfiler: Skapa konfigurationsfiler eller rapporter med inbäddad Ruby-logik.
Du kan till exempel använda ERB för att generera en lista över produkter i en e-handelsapplikation: erb
- .
- - $
<% @products.each do |product| %>
<% end %>
Tips för att skriva rena ERB-mallar
För att hålla dina ERB-mallar underhållbara och effektiva, följ dessa bästa metoder:
- Minimera Ruby Logic i mallar: Flytta komplex logik till hjälpfunktioner eller styrenheter.
- Använd Partials: Bryt ner stora mallar till mindre, återanvändbara komponenter.
- Undvik "deep nesting": Håll konditionaler och loopar enkla för att förbättra läsbarheten.
- Escape Användarinmatning: Sanera alltid användarinmatning för att förhindra säkerhetsproblem.
Till exempel, istället för att skriva: erb
<% if @user.admin? %>
<p>Admin Dashboard</p>
<% else %>
<p>Kontrollpanel för användare</p>
<% end %>
Du kan flytta logiken till en hjälpprogram: ruby
def dashboard_message(användare)
användare.admin? ? "Admin Dashboard" : "User Dashboard"
slut
Och förenkla mallen: erb
<p><%= dashboard_message(@user) %></p>
Exempel: Skapa en enkel ERB-mall
Låt oss gå igenom ett praktiskt exempel på hur man skapar och renderar en ERB-mall:
Definiera ett Ruby-skript med data: ruby
kräver "erb
@items = ['Apple', 'Banana', 'Cherry']
Skapa en ERB-mall: erb
- .
<% @items.each do |item| %>
<% end %>
Rendera mallen: ruby
mall = ERB.new(File.read('mall.erb'))
puts mall.resultat(bindning)
Utdata kommer att vara: html
- .
- Äpple
- Banan
- Körsbär
ERB jämfört med andra templating-motorer
ERB är enkelt och nybörjarvänligt, men andra mallmotorer som Haml, Slim och Liquid erbjuder olika fördelar:
- Haml: Använder indragningsbaserad syntax för renare och mer kortfattade mallar.
- Slim: Liknar Haml men med fokus på minimalism och prestanda.
- Flytande: Utformad för säker, sandboxad templating (t.ex. i Shopify).
ERB:s styrka ligger i dess enkelhet och sömlösa integration med Ruby, vilket gör det till ett utmärkt val för nybörjare och Rails-utvecklare.
Slutsats
Embedded Ruby (ERB) är ett kraftfullt men enkelt verktyg som överbryggar klyftan mellan Ruby-logik och HTML, vilket gör det till en viktig del av Rubys ekosystem. Oavsett om du bygger dynamiska webbsidor, skapar e-postmallar eller genererar konfigurationsfiler, ger ERB den flexibilitet och enkelhet som behövs för att ge dina idéer liv.
När du dyker djupare in i Ruby-utvecklingOm du behärskar ERB kommer du att kunna skapa mer dynamiska, underhållsvänliga och skalbara applikationer. Så varför inte börja experimentera med ERB redan idag? Bygg ett litet projekt, justera några mallar och se hur ERB kan förändra ditt arbetsflöde.