1

我正在使用 Railssimple_format()从我的数据库中输出地址,如下所示:

<%= simple_format(@person.address) %>

结果我在我的 Safari 浏览器中得到了这个标记:

<p>
  "John Doe "<br>
  "123 Main Street "<br>
  "Eggham "<br>
  "United Kingdom"<br>
</p>

只要文本显示为左对齐,这很好。

但是,当我希望文本显示为对齐时,右边缘不是直的。如果您仔细查看 HTML,您就会明白为什么。在所有行的末尾都有空白,除了最后一个。

我不明白这些空格是从哪里来的,因为我总是return在输入每行的最后一个字母后立即按下。我从来没有输入任何这些空白,但它们出现在simple_format()给我的每个地址中。

有没有另一种或更好的方法来打印 Rails 中的文本字段,而最后没有那些烦人的空白?

谢谢你的帮助。

4

2 回答 2

3

好的,我最终使用了这个辅助方法:

def print_multiline(field)
  field.gsub("\r\n","<br/>").html_safe
end

对我来说,这比simple_format()因为它不会在行尾创建空白要好得多。

我在我的视图中使用它,如下所示:

<%= print_multiline(@person.address) %>
于 2013-08-10T10:04:44.367 回答
0

input_string.gsub("\r\n","\n") 将用 Unix 风格的 LF 字符替换 Microsoft 风格的 CR/LF。

于 2013-08-09T19:30:05.827 回答