2017-04-22 20 views
0

レールのテキストオブジェクトに改行を追加しようとしています。 'N \' 私はCHR(10)を試した9.4Postgresテキストフィールドに改行を追加するには

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

レール5.0とpostgresのを、使用

、\ nは、 '/ \ N /' および/ \ N/

方法some_textに改行を追加しますか?

TL; DR以下

は、私は、オブジェクトの属性をループコントローラで使用していたループであると私は表示された場合、それに

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

を改行を追加しよう@some_textオブジェクトはビュー内にあり、改行はありません。 @some_textオブジェクトをpostgresに保存しても、まだ改行がありません。

答えて

1

それは"\n"(二重引用符付き)です:

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

あなたはIRBまたはDERのRailsコンソールを使用putsで出力複数行の文字列にしたい場合。代わりに制御文字が表示されるので、pは機能しません。

HTMLの改行は、通常、レンダリングされたドキュメントには表示されません。目に見えるHTMLの改行(<br>)が、いくつかのオプションに文字列に(\nを)改行文字を変換するには:

  • 使用Railsのsimple_formatテキストヘルパーや値下げパーサは、

    • 文字列(string_with_linebreaks.gsub("\n", '<br>'))を翻訳、
    • 場所は、(デフォルトのCSSを変更しない限り)通常は両方のスペースや改行や
    • を保存します<pre>ブロックに文字列は、周囲のHTMLタグのwhite-space: pre-lineのようなCSSルールを宣言します。
  • +0

    私はコンソールとレールコントローラの両方を試してみましたが、それはラインを壊すことはありませんでした。 Railsコンソールは次のように返します:=> "文字列1つ\ n文字列2" – HoosierCoder

    +0

    ポストグルでは、改行ではなくその方法で保存されます – HoosierCoder

    +0

    どのようにコンソールに出力しますか? 'puts'では動作しますが、' p'では動作しません。コントローラーでどうやってテストしましたか? HTMLはデフォルトごとに改行を表示しません。 – spickermann

    関連する問題