🐈

【Rails】表示する文字数の指定

2023/12/01に公開

トップページ等に投稿やお知らせを表示する際、内容の文章が長い場合にすべてをのせるのはな~と思う時があります。その際に使用したメソッドの復習です。

truncateメソッド

truncateメソッドとは

文字列を切り捨てる(省略する)ことができるメソッドになります。
デフォルトでは文字列は30文字に省略され、それ以降の文字列は「…」として表示されます。

使い方

<div class="container mt-3">
  <div class="row">
    <% @new_notices.each do |notice| %>
    <div class="col-12 card mb-3"style="background-color: #ebe1a9;">
      <div class="card-body">
      <h6 class="list-group-item"><%= notice.created_at.strftime('%Y/%m/%d %H時%M分') %></h6>
      <h5 class="list-group-item font-weight-bold"><%= notice.title %></h5>
      <h6 class="list-group-item"><%= notice.body.truncate(100) %></h6>
      <h6 class="list-group-item"><%= link_to"お知らせ一覧へ",notices_path %></h6>
      </div>
    </div>
    <% end %>
  </div>
</div>

上記each文の中の<h6 class="list-group-item"><%= notice.body.truncate(100) %></h6>の部分で使用しているように、文字数制限をかけたい場所にtruncate(100)と記述することで使用できます。今回は100文字制限のため()内に100と記述しています。

完成形

オプションについて

truncate(文字列 [, オプション])

上記のように記載することでオプションを指定することができます。オプションの種類や説明については下記のサイトを参考にしていただければと思います。
https://techtechmedia.com/truncate-rails/

今後もいろいろなメソッドについて復習していければと思います。

Discussion