Qual è il significato di ERB?


132

Perché la vista dell'applicazione Rails è nel formato *.erb.html? Cosa significa "erb"?

Risposte:


164

erb sta per "Embedded RuBy". Un file .html.erbo .erb.htmlè HTML con codice Ruby incorporato; Rails valuterà il Ruby per aggiungere dinamicamente contenuto al file e produrrà un file HTML "puro" per il rendering.


9
Bonus: si può anche aggiungere il locale per il mix: index.en.html.erb e index.de.html.erb
Iain

3
zoppo, dovrebbero rimuovere l'html. non vedi html.php
luckyguy73,

46

Come già menzionato @Chowlett, erb sta per Embedded Ruby . Quando si definisce un file come ".html.erb" significa che è un file HTML con codice ruby ​​incorporato ed è simile all'estensione ".rhtml" del file rails.

Puoi vedere una differenza dettagliata e piacevole tra ".html.erb" e ".rhtml" Fai clic qui

Come ".rhtml", puoi anche rinominare l'estensione ".rjs" in ".js.erb" o ".rxml" in ".xml.erb"

Questo formato separa il tipo di contenuto dal motore modello che in questo caso è "erb".


1
Grazie @khanh per aver apprezzato la mia risposta :)
Nimesh Nikum il

9

Da Stuart Ellis's An Introduction to ERB Templating :

ERB (Embedded RuBy) è una funzione di Ruby che ti consente di generare comodamente qualsiasi tipo di testo, in qualsiasi quantità, dai modelli. I modelli stessi combinano il testo semplice con il codice Ruby per la sostituzione delle variabili e il controllo del flusso, il che li rende facili da scrivere e mantenere.

Sebbene ERB sia comunemente visto generare pagine Web, viene anche utilizzato per produrre documenti XML, feed RSS, codice sorgente e altre forme di file di testo strutturato. Può essere estremamente utile quando è necessario creare file che includono molte ripetizioni di un modello standard, come le suite di unit test.

Il componente principale di ERB è una libreria che è possibile chiamare all'interno delle applicazioni Ruby e delle attività di rake. Questa libreria accetta qualsiasi stringa come modello e non impone limiti all'origine del modello. È possibile definire un modello interamente all'interno del proprio codice o memorizzarlo in una posizione esterna e caricarlo come richiesto. Ciò significa che è possibile conservare i modelli in file, database SQL o qualsiasi altro tipo di archiviazione che si desidera utilizzare.

Le distribuzioni di Ruby includono anche un'utilità della riga di comando che consente di elaborare modelli archiviati nei file senza scrivere alcun codice aggiuntivo. Logicamente, questa utility si chiama ERB.

ERB fa parte della libreria standard di Ruby. Non è necessario installare alcun altro software per utilizzarlo.

L'articolo originale contiene maggiori dettagli e una breve guida all'uso di ERB. Puoi anche leggere i documenti ufficiali .


Nota: il blocco citato sopra è stato precedentemente pubblicato come risposta da un altro utente senza collegarsi a An Introduction to ERB Templating o riconoscere che non era il lavoro di quell'utente. Quel post è stato (giustamente) cancellato per plagio. Tuttavia, ho pensato che fosse una risposta utile , quindi ho ripubblicato la citazione dando la giusta attribuzione a Stuart Ellis, l'autore originale.


5

Embedded Ruby, chiamato anche ERb, è il sistema modello principale per l'inclusione di contenuti dinamici nelle pagine Web. --Michael Hertl


4

dal formato modello Un file che contiene un modello ERB può avere qualsiasi nome, ma è la convenzione che il nome del file dovrebbe terminare con l'estensione .erb. Rails richiede che i file modello abbiano l'estensione del tipo di output, seguito da .erb, in modo che un nome come layout.html.erb indichi un modello HTML.

i file erb genereranno semplicemente testo. Niente di più. Quale testo dipende dalla combinazione di testo statico e codice ruby ​​all'interno del file. Puoi usare erb per generare html quale utilizzo predefinito in Rails, perché è quello di cui i browser hanno bisogno per visualizzare una pagina.

In ruby ​​ci sono alcuni valori predefiniti Un default è che un controller renderà una pagina html. Ma puoi facilmente farlo rispondere con .xml o .json o .csv se scrivi un'API Web per questo

Erb è una classe di libreria che genera testo. Niente di più. Si aspetta un file che contenga testo statico e codice ruby ​​misti. Eseguirà il codice ruby ​​e scriverà il risultato in un altro file che, nel caso in cui per i controller, sia html


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.