0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ポートフォリオを作成する方へ】文字列を省略する方法

Posted at

ポートフォリオを作成する際、長文を省略して「続きを読む」とか「...」と表示したいなと思い調べたのでこちらにまとめます。

##結論
truncateメソッドを使います。

##使い方
truncateは2種類あります。

###String

string.rb
 "春はあけぼの。やうやう白くなりゆく山際、少し明かりて、紫だちたる雲の細くたなびきたる。".truncate(30) %>
 # "春はあけぼの。やうやう白くなりゆく山際、少し明かりて、..."
オプション 説明 デフォルト
:omission 省略された文字列の後ろにつける文字列  ...
:separator 区切り文字。中途半端なところで文字列が切れないようにする。日本語だとできない。 なし

これらを使うと、

string.rb
"春はあけぼの。やうやう白くなりゆく山際、少し明かりて、紫だちたる雲の細くたなびきたる。".truncate(30, omission: '...続きを読む', separator: ' ')
# "春はあけぼの。やうやう白くなりゆく山際、少...続きを読む"

###TextHelper

texthelper.rb
truncate("春はあけぼの。やうやう白くなりゆく山際、少し明かりて、紫だちたる雲の細くたなびきたる。")
# "春はあけぼの。やうやう白くなりゆく山際、少し明かりて、..."
オプション 説明 デフォルト
:length 省略前の文字列長 30
:omission 省略された文字列の後ろにつける文字列 ...
:separator 区切り文字。中途半端なところで文字列が切れないようにする。日本語だとできない。 なし
:escape HTMLエスケープ(falseを指定するとエスケープしない) true

##実際に使った結果
投稿をしてくれた人の内容を表示をする際に使いました。

<%= truncate(@post.content, length: 50) do %>
  <p><%= link_to '続きを読む', @post %></p>
<% end %>
スクリーンショット 2020-07-20 19.03.45.png 週報入力をすると右側に投稿が表示され、投稿内容50文字表示したあと、続きを読むというリンクで詳細に飛ぶようになっています。

##参考
https://apidock.com/rails/String/truncate
https://apidock.com/rails/ActionView/Helpers/TextHelper/truncate

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?