在 Ruby 中使用 ERB class 时删除模板中的白色 space
Remove white space in templates when using ERB class in Ruby
这是一个简单的 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
注意空白行。我似乎无法摆脱那多余的白色space。标签 <%-
和 -%>
不适用于 ERB.new
(我收到错误)。
如何去除白色 space
我正在使用 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, '-')
现在,<%- -%>
标签可以正常工作了,希望对您有所帮助!
这是一个简单的 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
注意空白行。我似乎无法摆脱那多余的白色space。标签 <%-
和 -%>
不适用于 ERB.new
(我收到错误)。
如何去除白色 space 我正在使用 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, '-')
现在,<%- -%>
标签可以正常工作了,希望对您有所帮助!