如何使用 ERB 将数组呈现为 YAML 列表?

How to render an Array to a YAML list with ERB?

我正在尝试将带有 ERB 的数组呈现为 YAML 文件。

输入:

arr = [1,2,3]

预期输出:

  ---
  tags:
    - 1
    - 2
    - 3

代码:

tags:
  <%- @arr.each do |tag| -%>
  - <%= tag %>
  <% end -%>
  - extra-tag

这会呈现以下 YAML

---
tags:
  - 1 - 2 -3

有没有办法正确渲染它?

我在你的示例中看到的唯一问题是结尾 <% end -%>(应该是 <%- end -%>)缺少前导 -

# foo.erb:
<%- @arr = [1,2,3] -%>
tags:
  <%- @arr.each do |tag| -%>
  - <%= tag %>
  <%- end -%>
  - extra tag

输出:

$ erb -T - foo.erb
tags:
 - 1
 - 2
 - 3
 - extra tag

没有前导-我得到的结果和你的不一样:

tags:
  - 1
    - 2
    - 3
    - extra tag