【form_with】text_area의 입력 내용의 「개행」을 반영시킨다

소개



form_with를 사용해 제출 폼을 구현해, 입력 내용에 개행을 넣어도, 개행은 반영되지 않는다.

(간단한 메모 앱을 예로 한다)

new.html.erb
〜省略〜
<%= form_with model: @memo, local: true do |f| %>
<%= f.text_area :title, placeholder:"メモのタイトルを入力する" %>
<%= f.submit "記録する" %>
<% end %>
〜省略〜

show.html.erb
〜省略〜
<% @memos.each do |memo| %>
  <ul>
    <li>
      <% memo.title%>
    </li>
  </ul>
〜省略〜

· 투고 작성 화면 표시


↓ 폼의 내용을 송신하면 「개행」이 반영되어 있지 않다.

· 투고 화면 표시


기사 내용



form_with로 제출하는 폼내의 「개행」을 반영시킨다.

(개행판) 투고 화면 표시


개행을 반영하는 방법



show.html.erb의
<%memo.title%>

<%= safe_join(memo.title.split("\n"),tag(:br)) %>
그리고 다시 씁니다.

show.html.erb
〜省略〜
<% @memos.each do |memo| %>
  <ul>
    <li>
      <%= safe_join(memo.title.split("\n"),tag(:br)) %>
    </li>
  </ul>
<% end %>
〜省略〜

코드의 의미



・split("\n")로 개행 코드를 취득
· 태그 (: br))로 br 태그로 변경

좋은 웹페이지 즐겨찾기