这是一个简单的 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。
最佳答案
嘿,当你想使用 <%- -%>
标签(这会阻止 if
输出)你必须传递 -
至 trim_mode
ERB.new
的选项使用它。
请看下面的例子:
改变你test.erb
文件到以下代码:
Hello
<% if (@x) -%>
XXX
<% end -%>
Goodbye
当你实例化ERB
,像这样传递选项:
renderer = ERB.new(File.read('test.erb'), nil, '-')
现在,<%- -%>
标签可以正常工作,希望对您有所帮助!
关于ruby - 在 Ruby 中使用 ERB 类时删除模板中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54205458/