ruby - 在 Ruby 中使用 ERB 类时删除模板中的空格

标签 ruby erb

这是一个简单的 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/

相关文章:

与 Enumerable 类链接的 Ruby 方法

ruby-on-rails - rails : Automatic inclusion of action/controller specific javascript files?

ruby-on-rails - 将 HTML 输入标记转换为 Rails erb 模板

ruby-on-rails - 允许当前用户删除其帐户

ruby-on-rails - 指定格式 : "xml" ignored with render_to_string

ruby - 将 Ruby 字符串编码为 JSON 字符串

ruby - 将带空格的值传递给 Ruby 脚本

arrays - 按空格将字符串拆分为数组

ruby-on-rails - 如何找出为什么 Rails 服务器挂起 100%?

javascript - 如何隐藏和显示模式的内容?