ruby-on-rails - ERB 模板中的缩进

标签 ruby-on-rails ruby erb

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

最佳答案

我能提供的唯一解决方案是 hackish 添加 <%- '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 应删除 <%- 前的空格什么时候-模式已启用。

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

相关文章:

ruby-on-rails - 将 Rails 部署为桌面应用程序

ruby-on-rails - 运行迁移时出现 Rails 迁移错误?

javascript - Rails js.erb 文件找不到方法 "render"

ruby - Puppet 模板迭代和 yaml 文件

ruby-on-rails - POPAuthenticationError - 从 Gmail 帐户轮询时出现 Mailman 错误

ruby-on-rails - Ruby on Rails - 在 html.erb 中使用助手

ruby-on-rails - Rails 创建带点的畸形路线

ruby-on-rails - 将 gem 中的 I18n 翻译动态加载到 Rails 引擎中

ruby-on-rails - Sidekiq 部署到多个环境

mysql - 部署后 Rails 4 无法连接到 mysql