1)背景
以下の画像にある「コンテンツの登録」欄を見て下さい。全部で9行あります。
これを登録して、別画面でsimple_formatメソッドで表示すると、以下のようになります。
登録した通りの行数にするにはどうすれば良いでしょうか。対策を考えました。
2)環境
項目 | 内容 |
---|---|
OS.Catalina | v10.15.4 |
Ruby | v2.5.1 |
Ruby On Rails | v5.2.4.3 |
3)内容
対応1)ヘルパーメソッドを作成する。
他の方の記事も見たのですが、以下のようにヘルパーを作りました。
application_helper.rb
1 module ApplicationHelper
2 #連続した改行コードの場合、エスケープされるため明示的に改行タグを挿入する
3 def br(str)
4 str.gsub(/\r\n|\r|\n/, "<br />").html_safe
5 end
6 end
表示するときにこのヘルパーを以下の通りに呼び出して使用します。ヘルパー化すると、作るコストも低いので便利ですね。
test.html.erb
1 <div class="krown-value">
2 <%= br(@knowledge.content) %>
3 </div>
以上です。