Qual é o significado de erb?


132

Por que a visualização do aplicativo Rails está no formato *.erb.html? O que significa "erb"?

Respostas:


164

erb significa "Embedded RuBy". Um arquivo .html.erbou .erb.htmlé HTML com código Ruby incorporado; O Rails avaliará o Ruby para adicionar conteúdo ao arquivo dinamicamente e produzirá um arquivo HTML "puro" para renderização.


9
Bônus: você também pode adicionar seu código do idioma à mistura: index.en.html.erb e index.de.html.erb
iain

3
coxo, eles devem remover o html. u não ver html.php
luckyguy73

46

Como a @Chowlett mencionou antes, erb significa Embedded Ruby . Quando você define qualquer arquivo como ".html.erb", significa que é um arquivo HTML com código ruby ​​incorporado e é semelhante à extensão ".rhtml" do arquivo rails.

Você pode ver uma diferença detalhada e agradável entre ".html.erb" e ".rhtml" Clique aqui

Assim como ".rhtml", você também pode renomear a extensão ".rjs" para ".js.erb" ou ".rxml" para ".xml.erb"

Esse formato separa o tipo de conteúdo do mecanismo de modelo, que é "erb" nesse caso.


1
Graças @khanh para apreciar a minha resposta :)
Nimesh Nikum

9

De Stuart Ellis, uma introdução ao modelo de ERB :

ERB (Embedded RuBy) é um recurso do Ruby que permite gerar convenientemente qualquer tipo de texto, em qualquer quantidade, a partir de modelos. Os próprios modelos combinam texto sem formatação com código Ruby para substituição de variáveis ​​e controle de fluxo, o que facilita a gravação e a manutenção.

Embora o ERB seja mais comumente visto gerando páginas da Web, ele também é usado para produzir documentos XML, feeds RSS, código fonte e outras formas de arquivo de texto estruturado. Pode ser extremamente valioso quando você precisa criar arquivos que incluem muitas repetições de um padrão padrão, como suítes de teste de unidade.

O principal componente do ERB é uma biblioteca que você pode chamar em seus aplicativos Ruby e tarefas Rake. Essa biblioteca aceita qualquer sequência como modelo e não impõe limitações na origem do modelo. Você pode definir um modelo inteiramente dentro do seu código ou armazená-lo em um local externo e carregá-lo conforme necessário. Isso significa que você pode manter modelos em arquivos, bancos de dados SQL ou qualquer outro tipo de armazenamento que desejar usar.

As distribuições Ruby também incluem um utilitário de linha de comando que permite processar modelos mantidos em arquivos sem escrever nenhum código adicional. Logicamente, esse utilitário é chamado erb.

O ERB faz parte da biblioteca padrão do Ruby. Você não precisa instalar nenhum outro software para usá-lo.

O artigo original contém mais detalhes e um pequeno guia sobre o uso do ERB. Você também pode ler os documentos oficiais .


Nota: o bloco citado acima foi postado anteriormente como resposta por outro usuário sem vincular-se a Uma Introdução ao ERB Templating ou reconhecer que não era o trabalho desse usuário. Essa postagem foi (com razão) excluída por plágio. No entanto, eu pensei que era uma resposta útil , então reescrevi a citação dando a devida atribuição a Stuart Ellis, o autor original.


5

O Ruby incorporado, também chamado ERb, é o principal sistema de modelos para incluir conteúdo dinâmico em páginas da web. --Michael Hertl


4

do formato do modelo Um arquivo que contém um modelo ERB pode ter qualquer nome, mas é a convenção que o nome do arquivo deve terminar com a extensão .erb. O Rails exige que os arquivos de modelo tenham a extensão do tipo de saída, seguida por .erb, para que um nome como layout.html.erb indique um modelo HTML.

arquivos erb simplesmente produzem texto. Nada mais. Qual texto depende da combinação de texto estático e código ruby ​​dentro do arquivo. Você pode usar o erb para gerar html qual uso padrão no Rails, porque é isso que os navegadores precisam para exibir uma página.

Em ruby, existem certos padrões. Um padrão é que um controlador renderize uma página html. Mas você pode facilmente responder com .xml ou .json ou .csv se escrever uma API da Web para ele

Erb é uma classe de biblioteca que gera texto. Nada mais. Ele espera um arquivo que contenha texto estático e código ruby ​​misturados. Ele executará o código ruby ​​e gravará o resultado em outro arquivo que, no caso de seus controladores, é html


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.