为什么Rails应用程序的视图格式为*.erb.html
? “erb”是什么意思?
答案 0 :(得分:156)
erb代表“Embedded RuBy”。 .html.erb
或.erb.html
文件是嵌入了Ruby代码的HTML; Rails将评估Ruby以动态地向文件添加内容,并将输出“纯”HTML文件进行渲染。
答案 1 :(得分:44)
正如@Chowlett之前提到的,erb代表嵌入式Ruby 。当您将任何文件定义为“.html.erb”时,这意味着它是一个嵌入了ruby代码的HTML文件,它类似于rails文件的“.rhtml”扩展名。
你可以在“.html.erb”和“.rhtml”Click Here
之间看到详细而又不错的区别与“.rhtml”相同,您也可以将“.rjs”扩展名重命名为“.js.erb”或将“.rxml”重命名为“.xml.erb”
此格式将内容类型与模板引擎分开,在这种情况下为“erb”。
答案 2 :(得分:7)
来自Stuart Ellis的An Introduction to ERB Templating:
ERB(嵌入式RuBy)是Ruby的一项功能,使您可以方便地从模板生成任何数量的任何类型的文本。模板本身将纯文本与Ruby代码结合起来,用于变量替换和流控制,这使得它们易于编写和维护。
尽管ERB最常见于生成网页,但它也用于生成XML文档,RSS源,源代码和其他形式的结构化文本文件。当您需要创建包含许多重复标准模式的文件(例如单元测试套件)时,它可能非常有价值。
ERB的主要组件是一个库,您可以在Ruby应用程序和Rake任务中调用它。此库接受任何字符串作为模板,并且对模板的源不施加任何限制。您可以在代码中完全定义模板,也可以将其存储在外部位置并根据需要加载。这意味着您可以将模板保存在文件,SQL数据库或您要使用的任何其他类型的存储中。
Ruby发行版还包括一个命令行实用程序,使您可以处理文件中保存的模板,而无需编写任何其他代码。从逻辑上讲,此实用程序称为erb。
ERB是Ruby标准库的一部分。您无需安装任何其他软件即可使用它。
原始文章包含更多详细信息和使用ERB的简短指南。您还可以阅读official docs。
注意:上面引用的块之前是由另一个用户发布的,无需链接到 ERB模板简介或确认它不是该用户的工作。该帖子被(正确地)删除了抄袭。但是,我认为这是一个有用的答案,所以我将报价重新发布给了原作者Stuart Ellis。
答案 3 :(得分:5)
嵌入式Ruby,也称为ERb,是在网页中包含动态内容的主要模板系统。 - 迈克尔赫特尔
答案 4 :(得分:4)
包含ERB模板的文件可以具有任何名称,但是文件名应以.erb扩展名结尾的约定。 Rails要求模板文件具有输出类型的扩展名,后跟.erb,因此layout.html.erb之类的名称表示HTML模板。
erb文件只会输出文本。而已。什么文本取决于文件中静态文本和ruby代码的混合。您可以使用erb在Rails中生成html默认用法,因为浏览器需要显示页面。
在ruby中有一些默认值一个默认值是控制器将呈现一个html页面。但是,如果你为它编写一个web api,你可以轻松地使用.xml或.json或.csv做出响应
Erb是一个生成文本的库类。而已。它期望包含静态文本和ruby代码的文件混合在一起。它将运行ruby代码并将结果写入另一个文件,以防你的控制器是html
答案 5 :(得分:2)
ERB是在Ruby中模板化的类,通常在rails中使用.rhtml或.erb.html(带有嵌入式Ruby的HTML)。
这是关于Ruby文档的一个很好的细节。