質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

486閲覧

投稿された文章を、短く表示するには

jpj

総合スコア27

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/07/06 12:06

例えば、indexページで、ユーザーが投稿したmicropost.contentが、20文字より多かった場合、

最初の20文字だけ表示して、そのあとは続きのリンクを置きたいと思っています。

<%=micropost.content%> => ユーザーの投稿が入る <% if(micropost.content.length > 20) %>   <%= link_to "続きを読む", micropost.user %> <% end %>

micropostのモデルをいじるのかな?といろいろ考えているのですが、よく分かりません。

ご教授のほど、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2020/07/06 12:22

単純に文字コード換算で20文字で良いのか、全角幅文字で20文字分とするのかで、かなり変わってきます。あと、????‍????‍????‍????がバラバラにならないように考慮するのかどうかとか…。そこら辺はどのように考えていますか?
jpj

2020/07/06 12:43

文字コードではなく、全角幅文字で20文字と考えております。 あと, font-familyは勉強不足で申し訳ないのですが、バラバラにならない方がいいと思っています。
guest

回答1

0

ベストアンサー

単純な方法としては、こんな感じでできます。

erb

1<%= micropost.content[0, 20] %> 2<% if micropost.content.length > 20 %> 3 <%= link_to "続きを読む", micropost.user %> 4<% end %>

しかし、これには色々問題があります。

例えば、"abcdefghijklmnopqrstuvwxyz"だった場合、

abcdefghijklmnopqrst 続きを読む

ですが、"いろはにほへとちりぬるをわかよたれそつねらむうゐのおくやまけふこえてあさきゆめみしゑひもせすん"だったら、

いろはにほへとちりぬるをわかよたれそつね 続きを読む

と幅が大幅に変わってくることです。かといって、文字幅を考慮してとなると、かなり面倒な計算をする必要があります。他にも、"今日は家族で旅行に行きました。????‍????‍????‍????揃って楽しかったです。"は、

今日は家族で旅行に行きました。????‍????‍???? 続きを読む

となって、僕君は仲間はずれになってしまいます。このように、厳密にしていくと、大変難しくなるので、どこかで妥協することをお勧めします。

投稿2020/07/06 12:40

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jpj

2020/07/06 12:48

いろいろ難しい領域になるのですね。 大変参考になりました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問