我在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 %>

最佳答案

我唯一可以提供的解决方案是在<%- '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 Doc声称,ERB trim_mode的默认值为- http://edgeguides.rubyonrails.org/configuring.html#configuring-action-view

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

关于ruby-on-rails - ERB模板中的缩进,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48985850/

10-13 05:29