Embedded Ruby (ERB) 101: Ein Einsteigerhandbuch für dynamische Vorlagen in Ruby

März 17, 2025

Haben Sie sich jemals gefragt, wie Ruby-Entwickler dynamische Logik nahtlos in ihre HTML-Vorlagen integrieren? Hier ist Eingebettetes Rubin (ERB), ERB ist eine leistungsstarke Template-Engine, mit der Sie Ruby-Code direkt in HTML einbetten und so dynamische und datengesteuerte Webseiten erstellen können. Ob Sie nun einen einfachen Blog oder eine komplexe Webanwendung erstellen, ERB ist ein unverzichtbares Werkzeug für Ruby-Entwickler.

In diesem Handbuch führen wir Sie durch die Grundlagen von ERB, von der Syntax und Einrichtung bis hin zu praktischen Beispielen und Best Practices. Am Ende werden Sie ein solides Verständnis dafür haben, wie Sie ERB verwenden können, um dynamische und wartbare Vorlagen in Ihren Ruby-Projekten zu erstellen. Los geht's!

Was ist Embedded Ruby (ERB)?

Embedded Ruby (ERB) ist ein Templating-System, mit dem Sie Ruby-Code direkt in HTML-Dateien schreiben können. Diese Kombination ermöglicht es, dynamische Inhalte zu generieren, wie z. B. die Anzeige von benutzerspezifischen Daten oder die Iteration über eine Liste von Elementen. ERB-Dateien haben normalerweise die Erweiterung .erb und werden vom Ruby-Interpreter verarbeitet, um die endgültige HTML-Ausgabe zu erzeugen.

ERB wird häufig in Ruby on Rails verwendet, wo es als Standard-Templating-Engine für das Rendern von Ansichten dient. Es ist jedoch nicht auf Rail beschränkt - ERB kann in jedem Ruby-Projekt verwendet werden, um dynamische Vorlagen zu erstellen.

Wie funktioniert der ERB?

ERB verwendet spezielle Begrenzungszeichen, um Ruby-Code von HTML zu unterscheiden. Hier ist eine kurze Aufschlüsselung der wichtigsten Syntax:

: Führt Ruby-Code aus, ohne etwas auszugeben.

Beispiel: erb

<% if user_signed_in? %>
<p>Willkommen zurück!</p>
<% end %>

: Führt Ruby-Code aus und bettet das Ergebnis in die Vorlage ein.
Beispiel: erb

<h1>Hallo, <%= @user.name %>!</h1>

: Fügt Kommentare hinzu, die beim Rendern ignoriert werden.
Beispiel: erb

<%# This is a comment and won't appear in the output %>

Mit diesen Begrenzungszeichen können Sie Ruby-Logik mit HTML mischen und Ihre Vorlagen dynamisch und flexibel gestalten.

Einrichten von ERB in einem Ruby-Projekt

Die Verwendung von ERB in einem eigenständigen Ruby-Skript ist ganz einfach. Hier erfahren Sie, wie Sie loslegen können:

Benötigen Sie die erb-Bibliothek:
Rubin

erfordern 'erb'

Erstellen Sie eine ERB-Vorlage:
erb


<h1>Herzlich willkommen, <%= @name %>!</h1>

Binden Sie Daten an die Vorlage und rendern Sie sie:
Rubin

@name = "Alice"
Vorlage = ERB.new(File.read('template.erb'))
output = template.result(binding)
setzt Ausgang

In Ruby on Rails ist ERB standardmäßig integriert, so dass Sie es sofort in Ihren Ansichten verwenden können.

Hauptmerkmale des ERB

ERB verfügt über mehrere Funktionen, die es zu einer leistungsstarken Template-Engine machen:

  • Teilweise: Wiederverwendbare Vorlagen, die in andere Ansichten eingebunden werden können.
    Beispiel: erb
    <%= render 'shared/header' %>
  • Layouts: Gemeinsame Strukturen (z. B. Kopf- und Fußzeilen), die Ihre Ansichten umschließen.
    Beispiel: erb
  • Helfer: Ruby-Methoden, die komplexe Logik in Vorlagen vereinfachen.
    Beispiel: ruby
    def format_date(date)
    date.strftime("%B %d, %Y")
    Ende
  • HTML entkommen: Verhindert XSS-Angriffe durch Bereinigung von Benutzereingaben.
    Beispiel: erb
    <%= h(user_input) %>

Diese Eigenschaften machen ERB vielseitig und für eine Vielzahl von Anwendungsfällen geeignet.

Häufige Anwendungsfälle für ERB

ERB wird häufig in Szenarien wie diesen eingesetzt:

  • Dynamische Web-Seiten: Generierung von HTML-Inhalten auf der Grundlage von Benutzereingaben oder Datenbankabfragen.
  • E-Mail-Vorlagen: Erstellung anpassbarer E-Mail-Layouts mit dynamischen Daten.
  • Konfigurationsdateien: Erstellung von Konfigurationsdateien oder Berichten mit eingebetteter Ruby-Logik.

Sie könnten ERB zum Beispiel verwenden, um eine Liste von Produkten in einer E-Commerce-Anwendung zu erstellen: erb


    <% @products.each do |product| %>
  • - $

  • <% end %>

Tipps zum Schreiben sauberer ERB-Vorlagen

Um Ihre ERB-Vorlagen wartbar und effizient zu halten, sollten Sie diese bewährten Verfahren befolgen:

  • Ruby-Logik in Vorlagen minimieren: Verschieben Sie komplexe Logik in Hilfsprogramme oder Steuerungen.
  • Verwenden Sie Partials: Zerlegen Sie große Vorlagen in kleinere, wiederverwendbare Komponenten.
  • Vermeiden Sie Deep Nesting: Halten Sie Konditionale und Schleifen einfach, um die Lesbarkeit zu verbessern.
  • Benutzereingabe abbrechen: Bereinigen Sie Benutzereingaben immer, um Sicherheitslücken zu vermeiden.

Zum Beispiel, anstatt zu schreiben: erb

<% if @user.admin? %>
<p>Admin-Dashboard</p>
<% else %>
<p>Benutzer Dashboard</p>
<% end %>

Sie könnten die Logik in ein Hilfsmittel verschieben: ruby

def dashboard_message(user)
user.admin? ? "Admin Dashboard" : "Benutzer Dashboard"
Ende

Und vereinfachen Sie die Vorlage: erb

<p><%= dashboard_message(@user) %></p>

Beispiel: Erstellung einer einfachen ERB-Vorlage

Lassen Sie uns ein praktisches Beispiel für das Erstellen und Rendern einer ERB-Vorlage durchgehen:

Definieren Sie ein Ruby-Skript mit Daten: ruby

erfordern 'erb'
@items = ['Apfel', 'Banane', 'Kirsche']

Erstellen Sie eine ERB-Vorlage: erb


    <% @items.each do |item| %>

  • <% end %>

Rendering der Vorlage: ruby

Vorlage = ERB.new(File.read('template.erb'))
setzt template.result(binding)

Die Ausgabe wird sein: html


  • Apple

  • Banane

  • Kirsche

ERB im Vergleich zu anderen Templating-Engines

Während ERB einfach und anfängerfreundlich ist, sind andere Templating-Engines wie Haml, Schlank und Flüssig bieten unterschiedliche Vorteile:

  • Haml: Verwendet eine auf Einrückungen basierende Syntax für sauberere, prägnantere Vorlagen.
  • Slim: Ähnlich wie Haml, aber mit dem Schwerpunkt auf Minimalismus und Leistung.
  • Flüssig: Entwickelt für sicheres Sandbox-Templating (z. B. in Shopify).

Die Stärke von ERB liegt in seiner Einfachheit und der nahtlosen Integration in Ruby, was es zu einer hervorragenden Wahl für Anfänger und Rails-Entwickler.

Abschluss

Embedded Ruby (ERB) ist ein leistungsfähiges und dennoch einfaches Werkzeug, das die Lücke zwischen Ruby-Logik und HTML schließt und damit ein wesentlicher Bestandteil des Ruby-Ökosystems ist. Ob Sie dynamische Webseiten erstellen, E-Mail-Vorlagen entwickeln oder Konfigurationsdateien generieren, ERB bietet die Flexibilität und Einfachheit, die Sie benötigen, um Ihre Ideen zum Leben zu erwecken.

Wenn Sie tiefer eintauchen Ruby-Entwicklung, Die Beherrschung von ERB wird Sie in die Lage versetzen, dynamischere, wartungsfreundlichere und skalierbarere Anwendungen zu erstellen. Warum also nicht gleich heute mit ERB experimentieren? Erstellen Sie ein kleines Projekt, optimieren Sie einige Vorlagen und sehen Sie, wie ERB Ihren Arbeitsablauf verändern kann.