rails erb

让我对学习Rails感到不舒服的第一件事就是看一下视图。 我发现了一些带有奇怪语法的奇怪文件。 他们的名字就像“ name.html.erb”,我就像是什么? 为什么这个看起来像HTML语法HTML文件在.html扩展名之后具有.erb扩展名?

在那时,那些奇怪的符号(就像HTML标签一样)对我来说还是个谜。 因此,我开始调查,结果是:

什么是erb?

“ erb”是指嵌入式Ruby,它是一个模板引擎,其中Ruby语言嵌入到HTML中。 更清楚地说:引擎是否需要能够在HTML代码中使用Ruby语言及其所有功能。 我们将在下一部分中看到其应用。

Rails使用erb作为其默认引擎来渲染视图。 它使用一种称为 erubi 。

要在Rails中使用erb,文件均应具有.html.erb扩展名,以使Rails能够在其资产管道中对其进行处理。

它是如何工作的?

在调查过程中,我发现使用了三个元素:

表达式标签<%=%>

此标记表明其中将有一个表达式。 要点:应用程序将在此标记内呈现执行代码的结果。 让我们看一个例子,使其更清楚:

我假设您已经了解Rails中的MVC架构,但是如果您不了解,请不要担心。 我将尽力解释清楚:

假设我们有一个具有以下属性的用户模型:

控制器将要求模型从数据库中检索第一个用户。 然后将其存储在名为@user的实例变量中:

如果我们想在视图中显示前三个用户属性,我们将使用HTML和erb代码,如下所示:

< h1 > First User Information </ h1 >
< ol >< li > User id: < %= @ user.id %> </ li >< li > User name: < %= @ user.name %> </ li >< li > User email: < %= @ user.email %> </ li >
</ ol >

浏览器将显示如下结果:

切记:该应用程序将在表达式标签内呈现执行代码的结果。 例如,<%= 2 + 2%>将呈现4。

执行标签<%%>

像表达式标签一样,它们将Ruby代码嵌入HTML。 区别在于应用程序不会呈现执行代码的结果。 他们经常Ruby表情。 让我们回顾一个示例以更好地理解它:

假设您正在构建一个视图以显示数据库中的所有用户。 控制器将要求模型从数据库中检索所有用户(共10个)。 然后将它们存储在名为@users的实例变量中。 您有两种方法可以做到这一点:有效的方法和无效的方法。 让我们从后面开始:

一种显示用户列表的效率很低的方法是建立一个类似于以下视图的视图:

< h1 > All Users </ h1 >
< ol >< li > < %= @ users [ 0 ] .name %> </ li >< li > < %= @ users [ 1 ] .name %> </ li >< li > < %= @ users [ 2 ] .name %> </ li >< li > < %= @ users [ 3 ] .name %> </ li >< li > < %= @ users [ 4 ] .name %> </ li >< li > < %= @ users [ 5 ] .name %> </ li >< li > < %= @ users [ 6 ] .name %> </ li >< li > < %= @ users [ 7 ] .name %> </ li >< li > < %= @ users [ 8 ] .name %> </ li >< li > < %= @ users [ 9 ] .name %> </ li >
</ ol >

该视图将呈现:

想象一下,这里没有10个用户,但有数千个。 这就是循环变得有用的时候,我们可以在执行标签和表达式标签的帮助下使用它,如下所示:

< h1 > All Users </ h1 >
< ol >< % @ users.each do | user | %>< li > < %= user.name + ' efficiently displayed ' %> </ li >< % end %>
</ ol >

请注意三个要点:

  1. 我们使用“每个”循环来遍历用户。 这样,我们的代码不再依赖于数据库中有多少用户。
  2. 我们使用执行标签(<%%>)来包装块结构。 那就是应用程序不会显示的Ruby代码。
  3. 我们使用表达式标签(<%=%>)包装应用程序将显示的代码块。 在这种情况下,每个用户名+文本都会“有效显示”。

您可以在下面查看实施结果:

注释标签<%#%>

用于在代码中放置Ruby注释。 例如:

< h1 > All Users </ h1 >
< ol >< %# loop through every user %>< % @ users.each do | user | %>< li > < %= user.name + ' efficiently displayed ' %> </ li >< % end %>
</ ol >

构建模板时,注释标记内的代码将被忽略。

如何掌握呢?

让我告诉你一些很棒的事情:如果您已经对Ruby和HTML有所了解,那么精通erb只需几分钟。 否则,您需要花费几个小时的练习才能掌握。

如果您打算成为一名专业的Rails开发人员,则将练习很多此技能,所以请不要担心。 您迟早会掌握它。

始终有效的建议是:进行大量练习和实验,这是掌握工具的唯一方法。

重要提示:避免在视图中使用逻辑繁重的erb代码。 对于这些情况,最好创建一个辅助方法来处理该问题。

如果您想了解更多有关erb的信息,也可以访问以下站点:

  • 参考文献1 。
  • 参考2 。

请在Twitter上关注我并在LinkedIn 上进行连接。

翻译自: https://hackernoon.com/you-need-to-know-what-is-erb-in-rails-and-how-to-master-it-oj303yxq

rails erb

rails erb_您需要知道Rails中的erb以及如何掌握它相关推荐

  1. rails pry使用_在Rails 6中使用Gritter

    rails pry使用 介绍 (Introduction) Hello everyone, how has it been working with the challenges of COVID-1 ...

  2. rails 共享变量_如何将Rails实例变量传递给Vue组件

    rails 共享变量 by Gareth Fuller 由Gareth Fuller 如何将Rails实例变量传递给Vue组件 (How to pass Rails instance variable ...

  3. [Ruby on Rails系列]3、初试Rails:使用Rails开发第一个Web程序

    本系列前两部分已经介绍了如何配置Ruby on Rails开发环境,现在终于进入正题啦! Part1.开发前的准备 本次的主要任务是开发第一个Rails程序.需要特别指出的是,本次我选用了一个(Paa ...

  4. rails 两表关联查询_Rails中的单表继承与多态关联:找到适合您的方法

    rails 两表关联查询 by Haley Mnatzaganian 通过海利·姆纳扎卡尼安 Rails中的单表继承与多态关联:找到适合您的方法 (Single-table inheritance v ...

  5. mysql修改表字段小数点精度,mysql – 如何配置Rails以在表单字段中以正确的精度输出小数?...

    我想在我的(sqlite和mysql)数据库中存储货币.我正在尝试使用十进制列类型,其中:scale => 2. 这不符合预期.如果我保存记录:rate => 10.50,它作为10.5存 ...

  6. rails pry使用_在Rails中使用Google Maps

    rails pry使用 地图是导航世界的方式. 他们具有检查地球上每个位置的能力,从而为路线和土壤成分等服务开辟了道路. 在本文中,我将介绍Google Maps API(和一些替代方法)并将其与Ra ...

  7. netbeans下开发rails快捷键 及 Ruby On Rails开发技巧总结

    在controller和view直接跳转 - Ctrl + Shift + A 在controller/model和test/spec之间跳转 - Ctrl + Shift + T 直接跳转到类和方法 ...

  8. rails table html,Ruby on Rails:如何将字符串呈现为HTML?

    我有 @str ="Hi" 在我的erb视图中: 当我真正想要的是Hi时,页面上将显示:Hi. 将字符串"解释"为HTML标记的红宝石方法是什么? 编辑:这种情 ...

  9. Ruby on Rails 生成指定版本的 Rails 项目

    ruby-on-rails ruby 本地 Rails 默认5.1.6 版本 $ gem list --local rails (5.1.6, 5.1.5, 5.1.4) 使用 version 生成指 ...

  10. rails pry使用_使用Rails Active Resource简化Web应用程序之间的互操作性

    rails pry使用 存档日期:2019年5月14日 | 首次发布:2010年8月3日 了解使用Ruby on Rails的Active Resource实施和使用Web服务的快速简便方法. Rai ...

最新文章

  1. python在windows下import其他模块的注意事项
  2. sigmoid函数(Logistic函数)
  3. mysql5.7命中率_MySQL5.7中 performance和sys schema中的监控参数解释(推荐)
  4. redis作用_Redis高可用详解:持久化技术及方案选择
  5. 30岁软件测试转产品_SENSORO 产品总监回特入选 2019 年福布斯中国 30 岁以下精英榜...
  6. OO ALV 实现方式 ALV TABLE 之 栏位属性
  7. 控件:DataGridView列类型
  8. 转:As3.0中的反射
  9. JAVA基础之变量(数据类型及其转换)
  10. 电脑x64和x86安装软件的区别讲解分享
  11. 一个基于WinHttp的轻量级的分片下载库介绍
  12. java 生成pdf文件加密
  13. Stimulsoft Reports.Net 2022.2.1
  14. Objective-C(八、正式协议Protocol,非正式协议informal protocol)——iOS开发基础
  15. 为何线下支付更多人选择微信而不是支付宝?
  16. CentOS7.8下Cadence IC设计环境搭建( IC617+MMSIM151+Calibre2015)
  17. 普元连接mysql_普元数据库面试题
  18. 关于PO自动生成AP发票
  19. 第9.8节 Python使用writelines函数写入文件内容
  20. 2019年注册会计师考试全套高清视频课件百度云网盘免费下载方法

热门文章

  1. 蚂蚁金融NLP竞赛——文本语义相似度赛题总结
  2. 用计算机rap歌词,Rap歌词
  3. 【TcaplusDBx黎明觉醒】一路相伴,不负期待
  4. mysql使用结巴语句_MySQL 结巴中文分词插件 SqlJieba
  5. matlabrobert锐化_Matlab图像处理系列3———空间域锐化滤波器
  6. 智能管家---4.Log封装
  7. $.ligerDialog弹出对话框
  8. DAVIS Driving Dataset 2020 (DDD20) 【转载】
  9. rocketmq源码③-Producer的启动、发送消息、路由broker
  10. 利用FPGA制作数字电压表