这是一个简单的ERB模板:
# /tmp/test.erb
Hello
<% if (@x) %>
XXX
<% end %>
Goodbye
这是我的Ruby代码来渲染它:
require 'erb'
@x = false
renderer = ERB.new(File.read('/tmp/test.erb'))
output = renderer.result()
print output
以下是输出:
Hello
Goodbye
请注意空白行。我似乎无法摆脱多余的空白。标签<%-
和-%>
不能与ERB.new
一起使用(出现错误)。
我如何摆脱空白 我正在使用Ruby 2.3。
答案 0 :(得分:3)
嗨,当您想使用<%- -%>
标签(这会阻止if
输出)时,您必须将-
传递给trim_mode
的{{1}}选项使用它。
请参见以下示例:
将您的ERB.new
文件更改为以下代码:
test.erb
实例Hello
<% if (@x) -%>
XXX
<% end -%>
Goodbye
时,传递如下选项:
ERB
现在,renderer = ERB.new(File.read('test.erb'), nil, '-')
标签可以正常工作,希望对您有所帮助!