Ruby gsub 不插入换行符

Ruby gsub doesn't insert newlines

我有一堆字符串,我试图用换行符替换它们之间的空格,使用 gsub:

<%= "string string string".gsub(" ","\n")  %>

但出于某种原因,它只是打印为:

string string string

我做错了什么?

注意:它在 IRB 终端中按预期打印。我只是在我的浏览器中遇到这个问题,用 ERB 打印。

这对我来说很好用:

    puts "string string string".gsub(" ","\n")

也许你有类似这样的情况:

    x = "string string string"
    y = x.gsub(" ","\n")
    puts x

在第 2 行中,空格被替换,但 x 未修改 。 结果y已经替换空格

要直接替换 x 中的值,您必须使用 gsub!


根据您的编辑:

\n 没有在 HTML 里面解释,你需要一个 <br>。 br-tag 可能不会被屏蔽所以最后你可以在 ERB 中尝试这样的事情:

    x.gsub(" ","<br/>\n").html_safe