📝

[Ruby on Rails] text_areaから入力されたtextデータを表示させる時に改行されてない!

2024/05/04に公開


Railsで何らかのアプリケーションを作っている時に、フォームに入力した文章は↑画像のように改行していたのにテーブルから取り出して表示させる時に、↓画像を見て、「あれ、改行されていない!」ということはよく起こると思います。(少なくとも僕はよく起こります。そしてこの現象に遭遇するたび「どうするんだっけ?」ってなります。)

結論:

textデータをsimple_format()でくくる。

<%= simple_format(text) %>

こうすれば、下図のようにテキストを表示させても改行が保持されます。

simple_format() とは?

simple_format()は、与えられた文字列を以下の条件で整形する標準のヘルパーメソッドです。

・文字列を<p>で括る
・改行はbrを付与(Zennの仕様上、brのタグとして書いたらエスケープされずにbrタグと扱われて改行されてしまったので、</>をつけずに書きました。)
・連続した改行は、</p><p>を付与

Discussion