Quelle est la signification de erb?

132

Pourquoi la vue de l'application Rails est-elle au format *.erb.html? Que signifie "erb"?

Khanh
la source

Réponses:

164

erb signifie "Embedded RuBy". Un fichier .html.erbou .erb.htmlest HTML avec du code Ruby incorporé dans; Rails évaluera le Ruby pour ajouter du contenu au fichier de manière dynamique, et produira un fichier HTML "pur" pour le rendu.

Chowlett
la source
9
Bonus: vous pouvez également ajouter votre locale au mix: index.en.html.erb et index.de.html.erb
iain
3
boiteux, ils devraient supprimer le html. Vous ne voyez pas html.php
luckyguy73
46

Comme @Chowlett l'a mentionné précédemment, erb signifie Embedded Ruby . Lorsque vous définissez un fichier comme ".html.erb", cela signifie qu'il s'agit d'un fichier HTML avec du code ruby ​​intégré et qu'il est similaire à l'extension ".rhtml" du fichier rails.

Vous pouvez voir une différence détaillée et agréable entre ".html.erb" et ".rhtml" Cliquez ici

Identique à ".rhtml", vous pouvez également renommer l'extension ".rjs" en ".js.erb" ou ".rxml" en ".xml.erb"

Ce format sépare le type de contenu du moteur de modèle qui est "erb" dans ce cas.

Nimesh Nikum
la source
1
Merci @khanh d'avoir apprécié ma réponse :)
Nimesh Nikum
9

Tiré de An Introduction to ERB Templating de Stuart Ellis :

ERB (Embedded RuBy) est une fonctionnalité de Ruby qui vous permet de générer facilement tout type de texte, en toute quantité, à partir de modèles. Les modèles eux-mêmes combinent du texte brut avec du code Ruby pour la substitution de variables et le contrôle de flux, ce qui les rend faciles à écrire et à gérer.

Bien que ERB soit le plus souvent utilisé pour générer des pages Web, il est également utilisé pour produire des documents XML, des flux RSS, du code source et d'autres formes de fichier texte structuré. Cela peut être extrêmement utile lorsque vous devez créer des fichiers qui incluent de nombreuses répétitions d'un modèle standard, comme des suites de tests unitaires.

Le composant principal d'ERB est une bibliothèque que vous pouvez appeler dans vos applications Ruby et vos tâches Rake. Cette bibliothèque accepte n'importe quelle chaîne comme modèle et n'impose aucune limitation sur la source du modèle. Vous pouvez définir un modèle entièrement dans votre code, ou le stocker dans un emplacement externe et le charger selon vos besoins. Cela signifie que vous pouvez conserver des modèles dans des fichiers, des bases de données SQL ou tout autre type de stockage que vous souhaitez utiliser.

Les distributions Ruby incluent également un utilitaire de ligne de commande qui vous permet de traiter les modèles contenus dans des fichiers sans écrire de code supplémentaire. Logiquement, cet utilitaire s'appelle erb.

ERB fait partie de la bibliothèque standard Ruby. Vous n'avez pas besoin d'installer d'autres logiciels pour l'utiliser.

L'article original contient plus de détails et un petit guide d'utilisation d'ERB. Vous pouvez également lire les documents officiels .


Remarque: le bloc cité ci-dessus a été précédemment publié en tant que réponse par un autre utilisateur sans lien vers An Introduction to ERB Templating ou sans reconnaître qu'il ne s'agissait pas du travail de cet utilisateur. Ce message a été (à juste titre) supprimé pour plagiat. Cependant, j'ai pensé que c'était une réponse utile , j'ai donc republié la citation en attribuant correctement à Stuart Ellis, l'auteur original.

Mark Amery
la source
5

Embedded Ruby, également appelé ERb, est le système de modèle principal pour inclure du contenu dynamique dans les pages Web. --Michael Hertl

Andy Young
la source
4

from template-format Un fichier qui contient un modèle ERB peut avoir n'importe quel nom, mais la convention veut que le nom du fichier se termine par l'extension .erb. Rails nécessite que les fichiers de modèle aient l'extension du type de sortie, suivie de .erb, de sorte qu'un nom tel que layout.html.erb indique un modèle HTML.

Les fichiers erb produiront simplement du texte. Rien de plus. Le texte dépend du mélange de texte statique et de code ruby ​​à l'intérieur du fichier. Vous pouvez utiliser erb pour générer du code HTML dont l'utilisation par défaut dans Rails, car c'est ce dont les navigateurs ont besoin pour afficher une page.

Dans ruby, il y a certaines valeurs par défaut. Une valeur par défaut est qu'un contrôleur rendra une page html. Mais vous pouvez facilement le faire répondre avec .xml ou .json ou .csv si vous écrivez une API Web pour cela

Erb est une classe de bibliothèque qui génère du texte. Rien de plus. Il attend un fichier qui contient du texte statique et du code ruby ​​mélangés. Il exécutera le code ruby ​​et écrira le résultat dans un autre fichier qui, au cas où pour vos contrôleurs, serait html

Ahmed Ali
la source