Railsで改行を含む複数行のTextを表示する方法

✏️️ 2019/10/18 👍️2019/10/18 🔗

Railsで改行を含む複数行のTextを表示する方法です。

以下だと改行されません。

content = "Lorem ipsum dolor sit amet... \n ...consectetur adipiscing elit"
content
=> "Lorem ipsum dolor sit amet... \n ...consectetur adipiscing elit"

改行したい場合はsimple_format メソッドを利用します。

simple_format(content) 
=> "<p>Lorem ipsum dolor sit amet... \n<br /> ...consectetur adipiscing elit</p>"

simple_format を利用すると、

  • 2つ以上の改行は段落とみなされ、<p>タグでwrapされます。
  • 一つの改行は改行とみなされ<br>が追加されます。

wrapするタグを指定するにはwrapper_tag オプションを利用します。

simple_format(content, {}, wrapper_tag: "div")
=> "<div>Lorem ipsum dolor sit amet... \n<br /> ...consectetur adipiscing elit</div>"

サニタイズをfalseにしたい場合はsanitize オプションを利用します。

content = "Lorem ipsum <bold>dolor</bold> sit amet... \n ...consectetur adipiscing elit"

simple_format(content)
=> "<p>Lorem ipsum dolor sit amet... \n<br /> ...consectetur adipiscing elit</p>"

simple_format(content, {}, sanitize: false)
=> "<p>Lorem ipsum <bold>dolor</bold> sit amet... \n<br /> ...consectetur adipiscing elit</p>"

参考

akito
日本のスタートアップで主にRuby on Railsを使ってプロダクト開発をしています。