前提
こんな表示があったとします。
title | headline | content |
---|---|---|
book1 | 自己啓発 | アウトプットする |
book1 | ストレス解消 | よく寝る |
book2 | レシピ | カレー |
book2 | レシピ | カレーとハンバーグとシチューと肉じゃがとかのレシピ |
こんな風に、contentが長くなってしまうと、レイアウトが崩れてきてしまうので、多すぎる文字数は省略して表示させたい、という時どうするかという話。
truncateを使う
指定した文字数より多くなったら、切り捨てて表示ができるとのこと。
上記の例だと、
1 2 3 4 5 6 7 |
<% @books.each do |book| %> <tr> <td><%= book.title %></td> <td><%= book.headline %></td> <td><%= book.content.truncate(10) %></td> </tr> <% end %> |
とすることで、
title | headline | content |
---|---|---|
book1 | 自己啓発 | アウトプットする |
book1 | ストレス解消 | よく寝る |
book2 | レシピ | カレー |
book2 | レシピ | カレーとハンバ… |
となります。
.truncateの後に指定した数分だけ表示されるようになります。
これで、長い投稿があっても、レイアウトが崩れなくなりました!
それでは!
コメント