ERB 模板中的缩进

Indentation in ERB templates

我在 erb 模板中有以下条目:

# Lorem Ipsum...
<% unless @foo['bar'] == nil %>
    <% @foo['bar'].each do |property, value| %>
        <%= "zaz.#{property} #{value}" %>
    <% end %>
<% end %>

解析为:

# Lorem Ipsum...
       zaz.property value

如何删除前导空格,使行在已解析的模板中不缩进?

我想避免使用类似的东西:

# Lorem Ipsum...
<% unless @foo['bar'] == nil %>
    <% @foo['bar'].each do |property, value| %>
<%= "zaz.#{property} #{value}" %>
    <% end %>
<% end %>

您可以缩进代码而不是 ERB 标签:

# Lorem Ipsum...
<% unless @foo['bar'] == nil %>
<%   @foo['bar'].each do |property, value| %>
<%=    "zaz.#{property} #{value}" %>
<%   end %>
<% end %>

我能提供的唯一解决方案是在 <%= %> 条目之前添加 <%- 'whatever here' %>

<% [1,2,3].each do |f| %>
    <%- 1 %><%= f %>
<% end %>

它在 irb 中输出

irb(main):018:0> ERB.new(File.read('f.txt'), nil, '-').result
=> "\n1\n\n2\n\n3\n\n"

Rails 文档声称,ERB trim_mode 的默认值是 - http://edgeguides.rubyonrails.org/configuring.html#configuring-action-view

并且根据 https://www.systutorials.com/docs/linux/man/1-erb/ 当启用 - 模式时,ERB 应该删除 <%- 之前的空格。