Rails

【Rails】文字列を省略して表示することができるtruncateメソッドについて

Rails

 

今回は長い文字列を省略して記載することができる「truncateメソッド」について解説したいと思います。文字数を指定するメソッドを定義して、都度呼び出すといった作業が不要になるため、知っておくとかなり使えるメソッドの1つです。

省略表示で何かいい方法はないかなあって調べてて、このメソッドを見つけた時は感動しました(笑)

truncateメソッドとは

truncateメソッドとは、文字列を切り捨てる(省略する)ことができるメソッドです。

デフォルトでは文字列は30文字に省略され、それ以降の文字列は「…」として表示されます。これらはオプションを付与することでカスタマイズ可能です。

以下は29文字の文字列を15文字に省略した場合の例になります。

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(15)
=> "こんにちは。今日はいい天..."

使い方

ではtruncateメソッドの使い方について見ていきましょう。

truncateメソッドの定義とオプション内容については以下になります。

truncate(文字列 [, オプション])
オプション説明デフォルト値
:length切り捨ての桁数30
:separator切り捨てる箇所を表す文字列
:omission切り捨て時に末尾に付与する文字列 …

lengthオプション

切り捨てる文字数を設定できるオプションです。デフォルトは30文字です。

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(10)
=> "こんにちは。今..."

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(5)
=> "こん..."
切り捨てる文字数には「…」の3文字分が含まれるので注意しましょう。

separatorオプション

切り捨てる箇所を指定することができるオプションです。

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(10, separator: "。")
=> "こんにちは..."

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(20, separator: "。")
=> "こんにちは。今日はいい天気ですね..."

omissionオプション

末尾に付与される文字列を指定するオプションです。デフォルトは「…」です。

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(10, separator: "。", omiss
=> "こんにちは@@@"

"こんにちは。今日はいい天気ですね。お昼は何を食べましたか?".truncate(20, separator: "。", omiss
=> "こんにちは。今日はいい天気ですね~~~"

まとめ

  • truncateメソッドは、文字列を切り捨てる(省略する)ことができるメソッド
  • デフォルトでは文字列は30文字に省略され、それ以降の文字列は「…」として表示される
  • lengthオプションは切り捨てる文字数を設定できるオプション
  • separatorオプションは切り捨てる箇所を指定することができるオプション
  • omissionオプションは末尾に付与される文字列を指定するオプション

参考

 

 

今回は長い文字列を省略して記載することができる「truncateメソッド」について解説しました。ヘルパーメソッドとしても使用できるため、知っておくとかなり使えるメソッドの1つかなと思います。