ruby erb模板问题

ruby erb模板问题,ruby,erb,Ruby,Erb,我有这个脚本来生成配置文件。我正在使用ruby及其内置ERB 我的一些模板由特定格式、空格、大括号等组成 例如 command { var some_var; } 我的问题是我的ERB模板看起来非常脏,因为当我在模板中排列代码时,它也会破坏输出。我格式化了erb模板,使其看起来像干净的普通代码,在我的例子中,它有两个缩进空格。比如: <% if var == 'something' %> command { var #{var}; } <% end %&g

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

我的一些模板由特定格式、空格、大括号等组成

例如

command {
  var some_var;
}
我的问题是我的ERB模板看起来非常脏,因为当我在模板中排列代码时,它也会破坏输出。我格式化了erb模板,使其看起来像干净的普通代码,在我的例子中,它有两个缩进空格。比如:

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

命令{
var#{var};
}
不幸的是,这并没有产生我想要的两个间隔的输出,就像上面这个例子。所以我要做的是:

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

命令{
var#{var};
}
上面的erb模板代码生成了我想要的输出,但看起来很混乱。特别是当你有条件的时候。从长远来看,它很难阅读


有什么方法可以改进这一点吗?或者是否有其他模板语言适合于此?另外,也许这只是我自己,我愿意接受关于改进的意见。

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

你也可以试试HAML——这在缩进方面相当持久。除了Rails模板之外,您还可以从命令行或Ruby代码中运行Haml渲染:

irb
>> require 'rubygems'
>> gem 'haml'
>> require 'haml'
>> Haml::Engine.new("%bla").render(binding)
=> "<bla></bla>\n"
irb
>>需要“rubygems”
>>宝石“哈姆”
>>需要“haml”
>>Haml::Engine.new(“%bla”).render(绑定)
=>“\n”

在ERB文档的末尾,我还发现了一些对其他模板系统的引用:,也许这是一个开始。

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

你也可以试试HAML——这在缩进方面相当持久。除了Rails模板之外,您还可以从命令行或Ruby代码中运行Haml渲染:

irb
>> require 'rubygems'
>> gem 'haml'
>> require 'haml'
>> Haml::Engine.new("%bla").render(binding)
=> "<bla></bla>\n"
irb
>>需要“rubygems”
>>宝石“哈姆”
>>需要“haml”
>>Haml::Engine.new(“%bla”).render(绑定)
=>“\n”

在ERB文档的末尾,我还发现了一些对其他模板系统的引用:,也许这是一个开始。

是的,但我想haml只适用于rails。我需要一些特定于ruby的东西。不,你可以使用vanilla ruby的Haml-见更新的答案。是的,但我想Haml只适用于rails。我需要一些特定于ruby的东西。不,你可以使用vanilla ruby的Haml-见更新的答案。