我正在学习Rails,我见过这些模板引擎.我没有这方面的经验(只有雇员再培训局).

但作为一个初学者,我真的很困惑.你建议哪一个?为什么?Erb,Haml还是Slim?请告诉我你为什么喜欢其中一个.如果您还有其他建议,请告诉我们.

编辑:

推荐答案

如果你有一个会处理普通HTML的网页设计师,而且既不懂haml也不懂slim,那么ERB就很好了.通过这种方式,他可以编写HTML,您可以用适当的标记嵌入ruby逻辑.

如果你同时使用HTML和ruby逻辑,或者你的设计师已经准备好学习新的东西(比如HAML),我会 Select HAML.它对ruby友好得多,比ERB减少了大量的字符数,可读性也更高.

例如(摘自官方HAML site):

在ERB中,您的视图如下所示:

<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>

而在哈姆尔,情况会是这样的:

#profile
  .left.column
    #date= print_date
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio

干净多了!

至于HAML和SLIM之间的区别——我从来没有真正使用过SLIM,但我想这是一个品味问题——看看这两种语法,然后决定哪一种在你眼中看起来更好.我不认为这两者之间有绝对的赢家(HAML/SLIM).

Ruby-on-rails相关问答推荐

在ransackable_scopes中的作用域上创建activeadmin过滤器

使用Rails和RSpec,有没有办法查看操作真正将您带到哪个页面?

Rails 7.0.4 和 link_to 的数据确认不起作用

只允许用户在 Rails 中输入字母和数字

为 has_attached_file 等活动记录属性创建类方法

升级到 Rails 6.1.6.1 导致 Psych::DisallowedClass: 试图加载未指定的类:符号

当我必须更改 rspec 中的方法时,如何检测时间?

Rails - 如何使用子对象的嵌套属性和强参数填充父对象ID?

使用 rails 3.1.0 和 ubuntu 安装 Nokogiri 1.5.0 时出错

如何在 rspec 中运行单个测试?

如何在 RoR 中实现成就系统

如何在我的 Gemfile 中找到未使用的Ruby

activerecord 查找所有未包含在数组中的内容

Rails 错误:无法批量分配受保护的属性

如何显示 RSpec 测试生成的 SQL 查询日志(log)?

确认后如何进行设计重定向

submit_tag rails 表单中的 bootstrap 图标

如何在每个操作的基础上禁用 Ruby on Rails 的日志(log)记录?

Rails:在 link_to 中保留 GET 查询字符串参数

无论何时 gem 在 Heroku 上运行 cron 作业(job)