假设在你的控制器,你有这样的事情:rails:如何将多行输出转换为html?
@out = `git log --name-status -n1 ${@hash}`
(它返回一个多线输出到终端)
你想显示它在像这样一个观点:
<%= content_tag(:div, @out.html_safe, class: "well") %>
如何获得保留空白的输出?
假设在你的控制器,你有这样的事情:rails:如何将多行输出转换为html?
@out = `git log --name-status -n1 ${@hash}`
(它返回一个多线输出到终端)
你想显示它在像这样一个观点:
<%= content_tag(:div, @out.html_safe, class: "well") %>
如何获得保留空白的输出?
要么使用旧的<pre>
标记,要么在您的CSS中将white-space: pre;
or white-space: pre-wrap;
应用于周围的元素。我个人认为<pre>
是可取的,因为它是语义。
P.S.在这种情况下,我会避免使用html_safe
,因为shell命令的非转义输出可能会轻易破坏您的标记。
通常,<pre>
标记用于标记预格式化文本:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre