【问题标题】:question on ruby erb templates关于 ruby​​ erb 模板的问题
【发布时间】:2011-02-11 05:47:23
【问题描述】:

我有这个用于生成配置文件的脚本。我正在使用 ruby​​ 及其内置的 ERB。

我的一些模板包含特定格式、空格、大括号等

一个例子是

command {
  var some_var;
}

我的问题是我的 ERB 模板看起来很脏,因为当我在模板中排列代码时,它也会破坏输出。我格式化了 erb 模板,使它看起来像干净的普通代码,在我的例子中,它有两个缩进空格。类似:

<% if var == 'something' %>
  command {
    var #{var};
  }
<% end %>

不幸的是,这不会产生我想要的两个间隔的输出,就像这个例子上面的例子一样。所以我必须做的是:

<% if var == 'something' %>
command {
 var #{var};
}
<% end %>

上面的 erb 模板代码生成了我想要的输出,但它看起来很乱。尤其是当你有条件的时候。从长远来看,它很难阅读。

有什么方法可以改善这一点吗?还是有另一种适合此的模板语言?另外,也许这只是我个人,我对改进持开放态度。

【问题讨论】:

    标签: ruby erb


    【解决方案1】:

    我对 ERB 做了一些改动,但没有找到 :/ 也许你可以尝试使用 插值,这与缩进有关,尽管我在 rdoc 中找不到它的ERB。

    您也可以尝试 HAML http://haml-lang.com/ - 这对于缩进非常持久。除了 Rails 模板之外,您还可以从命令行或在 Ruby 代码中运行 Haml 渲染:

    irb
    >> require 'rubygems'
    >> gem 'haml'
    >> require 'haml'
    >> Haml::Engine.new("%bla").render(binding)
    => "<bla></bla>\n"
    

    我还在 ERB 文档的末尾找到了对其他模板系统的一些参考:http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/,也许这是一个开始。

    【讨论】:

    • 是的,但我猜 haml 仅适用于 rails。我需要一些特定于红宝石的东西。
    • 不,您可以使用原版 Ruby 中的 Haml - 请参阅更新后的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多