この記事は学習中に実装した内容をアウトプットし、更に理解を深めるための記録用投稿になります。
投稿している内容と同じ箇所で躓いている方に少しでもお力添えできれば幸いです。
解決したい内容
入力フォームで入力した内容を表示させるときに改行が反映されずに空白が入り表示されるのを解決し、入力した時のレイアウトのまま表示したい。
実装前
実装後
前提
・紹介文はdishesテーブルのintroductionカラム。
・form_withは記述済み
解決方法
エスケープしてから改行コードを変換
1,まずh関数で特殊文字をエスケープ
2,その後改行コードをbrタグに置換
3,その結果をhtml_safeやrawで表示させる
*変更前
<%= @dish.introduction %>
*変更後
<%= h(@dish.introduction).gsub(/\n|\r|\r\n/, "<br>").html_safe %>
今回、実装した際に「エスケープ」や「gsub」「html_self」などの初めて知った用語や記述方法を知りました。
難しそうですがさらに調べて理解を深めていこうと思います!