Ruby on rails 向字符串追加空格

Ruby on rails 向字符串追加空格,ruby-on-rails,ruby,string,whitespace,Ruby On Rails,Ruby,String,Whitespace,我有一个字符串: str="Myname" <pre> <%= str %> </pre> <%= raw "Myname somename".gsub(/\s/, "&nbsp;") %> 我想在字符串后添加四个空格。我所做的是: str=str+" "+"somename" 当我将str打印为时,输出仅显示一个空白。我怎样才能做到这一点?我还尝试: str=str+" "*4+"somename" 这也给出了与

我有一个字符串:

str="Myname"
<pre>
<%= str %>
</pre>
<%= raw "Myname    somename".gsub(/\s/, "&nbsp;") %>
我想在字符串后添加四个空格。我所做的是:

str=str+"    "+"somename"
当我将
str
打印为
时,输出仅显示一个空白。我怎样才能做到这一点?我还尝试:

str=str+" "*4+"somename"  

这也给出了与上面给出的相同的输出。我不想打印这个。字符串用作其他更多操作的Ruby变量。我可以用Ruby制作,但不能用RoR。

这与HTML如何处理空白有关。我假设您使用的是基于您使用的Erb类语法。如果确实必须输出空白,请使用


但我建议您尝试使用CSS解决此问题。

您的变量中可能有4个空格,但浏览器会在1个空格后截断多余的空格,因此您可能无法查看它们。试着跟随



您将看到代码中添加了空格。要实现您想要做的事情,请放入空格,而不是空白

如果您在控制台中尝试以下代码,您将看到问题出在html上

<pre>
  <%= str %>
</pre>
试一下如下


您可以将空格替换为html编码字符串,然后使用html\u safe或类似原始格式进行渲染

<%= raw(CGI.escapeHTML(str).gsub(/\s/, '&nbsp;')) %>

按照相同的结构,它将

str=raw(str++“somename”)

在HTML中,不管有多少个空格,都只计算一个空格。因此,必须使用HTML实体
(表示不间断空格)来显示多个空格

raw
部分是必需的,因为Rails默认情况下不允许HTML实体或任何实际HTML以字符串形式输出,因为恶意用户可以使用它们攻击您的站点和/或用户

因此,您必须在Rails中使用
raw
,也必须使用

我是一个糟糕的web程序员
预先标记存在的祸根,并应不惜一切代价避免。 在您的erb中使用此选项



不,我想要红宝石的。这不是用来印刷的。此字符串用于在数据库中搜索您是否可以编辑此问题以准确显示您使用它的位置?对我来说,
似乎很奇怪。也许这就是你要找的。请你解释一下这个问题好吗?我不明白你想说什么
<pre>I am a bad web programmer</pre>
<%= raw(CGI.escapeHTML(str).gsub(/\s/, '&nbsp;')) %>