如何用erb在一行上写一个枚举

How to write an enumeration on one line with erb

我通常在 html 中写枚举,在多行中写 erb 例如

  <% @results.each do  |str| %>
      <%= str %><br>
  <% end -%>

但最好在一行中完成,例如:

<%= @results.each  { |str| "#{str}<br>" }

但那种特殊的方式显然行不通。你怎么做呢?在我正在查看的特定情况下,每个 str 都在其末尾包含一个 \n 。但我对这两种情况都感兴趣,即每个 str 与否。

假设

@results = ["foo\n", "bar\n"]

然后:

<%= (@results.map  { |s| s.gsub('\n','') }.join('<br>') + "<br>").html_safe %>