如何将Linebreak添加到Postgres文本字段

时间:2017-04-22 21:42:49

标签: ruby-on-rails ruby

我正在尝试在rails中的文本对象中添加换行符。

使用rails 5.0和postgres 9.4

some_text = "string sentence one"
some_text += #how do i add line break here
some_text = "string sentence two"

我试过chr(10),'\ n',\ n,'/ \ n /'和/ \ n /

如何向some_text添加换行符?

TL;博士

下面是一个循环,我在控制器中使用循环遍历对象的属性并尝试向其添加换行符

@some_text ||= ""
object.attributes.each do |attr_name, attr_value|
    @some_text << attr_value.to_s + "\n"
end

当我在视图中显示@some_text对象时,它没有换行符。如果我将@some_text对象保存到postgres中,它仍然没有换行符。

1 个答案:

答案 0 :(得分:1)

它是"\n"(带双引号):

some_text = "string sentence one"
some_text << "\n"
some_text << "string sentence two"

如果要在irb或der Rails控制台中输出多行字符串,请使用puts。而p不起作用,因为它显示控制字符。

值得注意的是,HTML中的换行符通常不会显示在呈现的文档中。要将字符串(\n)中的换行符转换为可见的HTML换行符(<br>),可以选择以下几种方法:

  • 翻译字符串(string_with_linebreaks.gsub("\n", '<br>')),
  • 使用Rails'simple_format文本助手或降价解析器
  • 将字符串放入<pre>块中,通常(除非更改默认的css)将保留空格和换行符或
  • 在周围的HTML标记上声明white-space: pre-line之类的css规则。