「simple_format」や「safe_join」を使って、正常に改行表示させる方法(Rails)

f:id:ryoutaku_jo:20190626173800p:plain

【結論】

・text_areaのフォームは改行も入力可能だが、そのままデータをビューも出力しても、改行は反映されない。

simple_formatを利用すれば、<br><p>タグを自動的に付与して改行表示をさせる事が出来る

・なお<p>タグを付けたく無い場合には、safe_joinを利用する

【目次】

【本題】

text_areaの入力データの改行を反映される様にしたい

text_areaには改行を入力する事が可能ですが、そのまま出力しても改行は反映されません。

今回は改行を反映させる方法をまとめます。

simple_formatについて

simple_formatとは、Railsのヘルパーの一種で、文字列を下記の条件で加工してくれます。

・文字列を<p>で括る

・改行は<br />を付与

・連続した改行は、</p><p>を付与

= simple_format(text)

simple_format (ActionView::Helpers::TextHelper) - APIdock

safe_joinについて

先ほどのsimple_formatは、<p>タグで括られますが、もし<p>タグで括りたく無い場合はsafe_joinが有用です。

= safe_join(text.split("\n"), tag(:br))

safe_join (ActionView::Helpers::OutputSafetyHelper) - APIdock

参考情報

simple_format - リファレンス - - Railsドキュメント

simple_format (ActionView::Helpers::TextHelper) - APIdock

safe_join (ActionView::Helpers::OutputSafetyHelper) - APIdock

Rails simple_formatの勝手につく<p>タグを削除したい - ECのウェブ担当者のメモ

Ruby - <%= simple_format() %> で連続改行が反映されません(Railsです)|teratail

《今日の学習進捗(3年以内に10000時間に向けて)》

会社の先輩が共有して下さった以下の記事が非常に示唆に富んでいた。 http://miwa719.hatenablog.com/entry/daily20190624

毎日1時間システムテストを行うことで、チームメンバーのバグを検出するスキルが高まった事例が紹介されているが、最近業務のテストケース作成で痛い思いをした私のとっては非常にタイムリーな内容だった。

テストに限った話では無いかもしれないが、効果的なテストを行うスキルというのは、やはり数をこなさないと身に付かないと感じているので、単発ではなく、日々の業務にも取り入れていくのが重要だと感じている。

また、新規機能の開発ばかりに注力してしまうと、サービス全体の整合性が取れているか確認する為の俯瞰的な視点が欠けてしまい、サイト導線が歪になってしまったり、普通に使えば見つかる様なバグを見落としてしまうといった問題が発生してしまうと、実際の開発を通して感じていたので、それに対する良い解決策になるかもしれないと考えている。

今は直近のサービス導入を円滑に進める事が最優先だが、それらがひと段落したら、こういった取り組みも試してみたい。

とはいえ毎日1時間テストを行うのはコストが掛かり過ぎなので、毎週とか30分など量は抑えた方が良いとも考えている (この事例は医療関連のソフトウェア開発なので高い精度が求められている)

なお、先輩に唆されて、Ruby Silver試験(7/16)に申し込んでしまったので、これから試験勉強を頑張る!

学習開始からの期間 :200日
今日までの合計時間:1943h
一日あたりの平均学習時間:9.8h
今日までに到達すべき目標時間:1826h
目標との解離:117h
「10,000時間」まで、

残り・・・「8057時間!」