Embedded Ruby (ERB) 101 : Guide du débutant pour la création de modèles dynamiques en Ruby

17 mars 2025

Vous êtes-vous déjà demandé comment les développeurs Ruby intègrent de manière transparente une logique dynamique dans leurs modèles HTML ? Entrer dans Embedded Ruby (ERB)ERB est un puissant moteur de modélisation qui vous permet d'intégrer du code Ruby directement dans le code HTML, ce qui permet de créer des pages web dynamiques et axées sur les données. Que vous construisiez un simple blog ou une application web complexe, ERB est un outil indispensable pour Développeurs Ruby.

Dans ce guide, nous allons vous présenter les bases d'ERB, depuis sa syntaxe et sa configuration jusqu'aux exemples pratiques et aux meilleures pratiques. À la fin, vous aurez une solide compréhension de la manière d'utiliser ERB pour créer des modèles dynamiques et faciles à maintenir dans vos projets Ruby. Allons-y, plongeons !

Qu'est-ce que Embedded Ruby (ERB) ?

Embedded Ruby, ou ERB, est un système de templates qui permet d'écrire du code Ruby directement dans les fichiers HTML. Cette combinaison permet de générer un contenu dynamique, tel que l'affichage de données spécifiques à l'utilisateur ou l'itération sur une liste d'éléments. Les fichiers ERB portent généralement l'extension .erb et sont traités par l'interpréteur Ruby pour produire la sortie HTML finale.

ERB est largement utilisé dans Ruby on Rails, où il sert de moteur de templating par défaut pour le rendu des vues. Cependant, il n'est pas limité à Rails - ERB peut être utilisé dans n'importe quel projet Ruby pour créer des modèles dynamiques.

Comment fonctionne l'ERB ?

ERB utilise des délimiteurs spéciaux pour distinguer le code Ruby du HTML. Voici une brève description de la syntaxe clé :

: Exécute le code Ruby sans rien produire.

Exemple: erb

<% if user_signed_in? %>
<p>Bienvenue !</p>
<% end %>

: exécute le code Ruby et intègre le résultat dans le modèle.
Exemple: erb

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

: Ajoute des commentaires qui sont ignorés lors du rendu.
Exemple: erb

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

Ces délimiteurs vous permettent de mélanger la logique Ruby avec le HTML, ce qui rend vos modèles dynamiques et flexibles.

Mise en place d'ERB dans un projet Ruby

L'utilisation d'ERB dans un script Ruby autonome est simple. Voici comment commencer :

Nécessite la bibliothèque erb :
rubis

nécessite 'erb'

Créer un modèle ERB :
erb


<h1>Bienvenue, <%= @name %>!</h1>

Lier les données au modèle et les restituer :
rubis

@nom = "Alice"
template = ERB.new(File.read('template.erb'))
output = template.result(binding)
met la sortie

Dans Ruby on Rails, ERB est intégré par défaut, vous pouvez donc commencer à l'utiliser immédiatement dans vos vues.

Caractéristiques principales de l'ERB

ERB est doté de plusieurs fonctionnalités qui en font un puissant moteur de création de modèles :

  • Partiels: Modèles réutilisables qui peuvent être inclus dans d'autres vues.
    Exemple : erb
    <%= render 'shared/header' %>
  • Modèles: Structures partagées (par exemple, en-têtes, pieds de page) qui entourent vos vues.
    Exemple : erb
  • Aides: Méthodes Ruby qui simplifient la logique complexe des modèles.
    Exemple : ruby
    def format_date(date)
    date.strftime("%B %d, %Y")
    fin
  • Échapper au HTML: Prévient les attaques XSS en vérifiant les entrées de l'utilisateur.
    Exemple : erb
    <%= h(user_input) %>

Ces caractéristiques rendent l'ERB polyvalent et adapté à un large éventail de cas d'utilisation.

Cas d'utilisation courants de l'ERB

L'ERB est couramment utilisé dans des scénarios tels que :

  • Pages Web dynamiques : Générer du contenu HTML sur la base des données saisies par l'utilisateur ou des requêtes de la base de données.
  • Modèles d'e-mails : Création de mises en page d'e-mails personnalisables à l'aide de données dynamiques.
  • Fichiers de configuration : Création de fichiers de configuration ou de rapports avec une logique Ruby intégrée.

Par exemple, vous pouvez utiliser ERB pour générer une liste de produits dans une application de commerce électronique : erb


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

  • <% end %>

Conseils pour rédiger des modèles d'ERB propres

Pour que vos modèles ERB soient maintenus à jour et efficaces, suivez ces bonnes pratiques :

  • Minimiser la logique Ruby dans les modèles : Déplacer la logique complexe dans des aides ou des contrôleurs.
  • Utiliser des partiels : Décomposer les grands modèles en composants plus petits et réutilisables.
  • Évitez les nids profonds : Les conditionnelles et les boucles doivent rester simples pour améliorer la lisibilité.
  • Échapper à la saisie de l'utilisateur : Pour éviter les failles de sécurité, vérifiez toujours les données saisies par l'utilisateur.

Par exemple, au lieu d'écrire : erb

<% if @user.admin? %>
<p>Tableau de bord d&#039;administration</p>
<% else %>
<p>Tableau de bord de l'utilisateur</p>
<% end %>

Vous pouvez déplacer la logique dans un outil d'aide : ruby

def dashboard_message(user)
user.admin ? ? "Tableau de bord de l'administrateur" : "Tableau de bord de l'utilisateur"
fin

Et simplifier le modèle : erb

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

Exemple : Construction d'un modèle simple d'ERB

Voyons un exemple pratique de création et de rendu d'un modèle ERB :

Définir un script Ruby avec des données : ruby

nécessite 'erb'
@items = ['Apple', 'Banana', 'Cherry']

Créer un modèle ERB : erb


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

  • <% end %>

Rendu du modèle : ruby

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

Le résultat sera : html


  • Apple

  • Banane

  • Cherry

ERB vs. autres moteurs de modélisation

Si ERB est simple et convivial pour les débutants, d'autres moteurs de modélisation tels que Haml, Slim et Liquid offrent des avantages différents :

  • Haml : Utilise une syntaxe basée sur l'indentation pour des modèles plus propres et plus concis.
  • Slim : Semblable à Haml, mais avec un accent sur le minimalisme et la performance.
  • Liquide : Conçu pour la création de modèles sûrs et en bac à sable (par exemple, dans Shopify).

La force d'ERB réside dans sa simplicité et son intégration transparente avec Ruby, ce qui en fait un excellent choix pour les débutants et les utilisateurs. Développeurs Rails.

Conclusion

Embedded Ruby (ERB) est un outil puissant mais simple qui comble le fossé entre la logique Ruby et le HTML, ce qui en fait un élément essentiel de l'écosystème Ruby. Qu'il s'agisse de construire des pages web dynamiques, de créer des modèles de courrier électronique ou de générer des fichiers de configuration, ERB offre la flexibilité et la simplicité nécessaires pour donner vie à vos idées.

Au fur et à mesure que vous vous plongez dans Développement RubyLa maîtrise d'ERB vous permettra de créer des applications plus dynamiques, plus faciles à maintenir et plus évolutives. Alors, pourquoi ne pas commencer à expérimenter ERB dès aujourd'hui ? Créez un petit projet, modifiez quelques modèles et voyez comment ERB peut transformer votre flux de travail.

fr_FRFrench