長いテキストを省略できるRailsのビューヘルパー'truncate'

こんにちは!kossyです!






やり込んだゲームボーイソフトを思い出しました。
news.yahoo.co.jp

まだ年齢が一桁だった頃ですが、母親がゲーム好きだった影響で、
ポケットモンスターシリーズ
スーパーマリオランド2 6つの金貨
茶々丸冒険記3 アビスの塔
ロックマンワールド5
なんかをやり込んだ記憶があります。
昔のゲームは難易度が高くて面白かったですね。

スマホでも高難度の横スクロールアクションゲームが楽しめるのでしょうか。













さて、今回は長いテキストを省略できるビューのヘルパーである、
'truncate'の使い方について、ブログに残してみたいと思います。



環境
Rails5.1.6
Ruby2.5.1
MacOS
Haml





ビューヘルパーってなに?

Railsにおいてビューヘルパーとは、
日付の表示の仕方の変換や、HTMLのフォームを生成するなどの役割があります。
ビューヘルパーを用いることで、可読性の向上が期待できます。


truncateの使い方

truncateは、長いテキストを省略して表示することができるビューヘルパーです。

任意のビューファイル
= truncate("lorem ipsum dolor sit amet", length: 15)
=> lorem ipsum ...

デフォルトの設定は省略記号が...で30文字に省略されますが、
それぞれomissionとlengthオプションで任意の設定にできます。

また、ブロックを用いることで、省略後の処理を記述できます。

= truncate(review.content, length:15) do
  = link_to "続きを読む", review_path(review)

上記コードは、ビューヘルパーであるlink_toを用いて、
コンテンツ部分を省略しつつ、レビュー詳細画面へのリンクを設定しています。





参考にさせていただいたサイト・記事
truncate - リファレンス - - Railsドキュメント
Rails - 長い文字列を省略して表示する