rails:你如何将多行输出转换为html?

时间:2014-05-15 20:57:27

标签: ruby-on-rails views exec whitespace

假设在你的控制器中,你有这样的东西:

@out = `git log --name-status -n1 ${@hash}`

(将多行输出返回到终端)

你想在这样的视图中展示它:

<%= content_tag(:div, @out.html_safe, class: "well") %>

如何使用保留的空格获得该输出?

2 个答案:

答案 0 :(得分:0)

使用旧的<pre>标记,或者在CSS中将white-space: pre; or white-space: pre-wrap;应用于周围的元素。我个人认为<pre>更可取,因为它是语义上的。

P.S。我会避免在这个实例中使用html_safe,因为shell命令的非转义输出很容易破坏你的标记。

答案 1 :(得分:0)

通常,<pre>标记用于标记预格式化的文本:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre