erb是什么意思?


132

为什么Rails应用程序的视图采用格式*.erb.html?“ erb”是什么意思?

Answers:


164

erb代表“嵌入式RuBy”。甲.html.erb.erb.html文件是HTML与Ruby代码嵌入; Rails将评估Ruby以动态地向文件添加内容,并将输出一个“纯” HTML文件进行渲染。


9
奖励:您还可以将您的语言环境添加到混合中:index.en.html.erbindex.de.html.erb
iain 2010年

3
me脚,他们应该删除html。你看不到html.php
luckyguy73

46

正如@Chowlett之前提到的那样,erb代表Embedded Ruby。当您将任何文件定义为“ .html.erb”时,这意味着它是一个嵌入了红宝石代码的HTML文件,类似于rails文件的“ .rhtml”扩展名。

你可以看到“.html.erb”和“的.rhtml”之间的详细和漂亮的区别点击这里

与“ .rhtml”相同,您也可以将“ .rjs”扩展名重命名为“ .js.erb”,或将“ .rxml”重命名为“ .xml.erb”

这种格式将内容类型与模板引擎(在这种情况下为“ erb”)分开。


1
感谢@khanh感谢我的回答:)
Nimesh Nikum 2010年

9

摘自Stuart Ellis的ERB模板简介

ERB(Embedded RuBy)是Ruby的一项功能,可让您方便地从模板生成任何数量的任何类型的文本。模板本身将纯文本与Ruby代码结合在一起,用于变量替换和流控制,这使它们易于编写和维护。

尽管ERB在生成Web页面方面最常见,但它也用于生成XML文档,RSS feed,源代码和其他形式的结构化文本文件。当您需要创建包含许多重复的标准模式的文件(例如单元测试套件)时,它会非常有价值。

ERB的主要组件是一个库,您可以在Ruby应用程序和Rake任务中调用该库。该库接受任何字符串作为模板,并且对模板的来源没有任何限制。您可以完全在代码中定义模板,也可以将其存储在外部位置并根据需要加载。这意味着您可以将模板保留在文件,SQL数据库或要使用的任何其他类型的存储中。

Ruby发行版还包含一个命令行实用程序,使您无需编写任何其他代码即可处理文件中保存的模板。从逻辑上讲,此实用程序称为erb。

ERB是Ruby标准库的一部分。您不需要安装任何其他软件即可使用它。

原始文章包含更多详细信息和使用ERB的简短指南。您也可以阅读官方文档


注意:上面引用的块以前是其他用户发布的答案,而没有链接到ERB模板简介或承认这不是该用户的工作。该帖子因right窃而被删除(正确)。但是,我认为这是一个有用的答案,因此我重新张贴了报价,并适当注明了原始作者Stuart Ellis。



4

模板格式开始 包含ERB模板的文件可以具有任何名称,但是按照惯例,文件名应以.erb扩展名结尾。Rails要求模板文件具有输出类型的扩展名,后跟.erb,以便诸如layout.html.erb之类的名称表示HTML模板。

erb文件将仅输出文本。而已。什么文本取决于文件中静态文本和红宝石代码的混合。您可以使用erb生成Rails中默认用法的html,因为这是浏览器显示页面所需要的。

在ruby中有一些默认值。一个默认值是控制器将呈现html页面。但是,如果您为其编写Web API,则可以轻松地使其以.xml或.json或.csv进行响应

Erb是一个生成文本的库类。而已。它需要一个包含静态文本和Ruby代码混合在一起的文件。它将运行ruby代码并将结果写入另一个文件,以防您的控制器使用html


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.