私はストーリーのテキストフィールドを持っており、最初の数行、つまりそのフィールドの最初の50ワードをスナップショットページに表示したいと考えています。 Ruby(on Rails)でどうすればいいですか?ルビーのテキストフィールドの最初の50語または60語を表示したいですか?
3
A
答えて
4
Aaron Hinni's answerと同じですが、
def truncate(text, max_sentences = 3, max_words = 50)
# Take first 3 setences (blah. blah. blah)
three_sentences = text.split('. ').slice(0, max_sentences).join('. ')
# Take first 50 words of the above
shortened = three_sentences.split(' ').slice(0, max_words).join(' ')
return shortened # bah, explicit return is evil
end
また、このテキストは、いずれかを持っている場合、(それは文章が長すぎるなら、50個の言葉に切り捨てた後)しようとすると、3つの完全な文章を維持しますHTML、私の答えは"Truncate Markdown?"である可能性があります
6
単語がスペースで区切られていると仮定すると、このようなことができます。ほとんど
stories.split(' ').slice(0,50).join(' ')
0
Railsアプリケーションでは、基本的なStringクラスを拡張する( "monkey patch")という非常によく似たものを使用しています。
私は含まれを作成しました:
class String
def to_blurb(word_count = 30)
self.split(" ").slice(0, word_count).join(" ")
end
end
を私は、含まれているconfig/initializers/load_extensions.rb
を作成しました:
require 'core_extensions'
を今、私はRailsアプリケーション内のすべての私のStringオブジェクトのto_blurb()
メソッドを持っています。
関連する問題
- 1. Backbone.jsテキストフィールドの最初の単語のみを表示
- 2. は、フレーズの最初の4語をhtmlで表示します。
- 3. PHPのポストメソッドは、最初の単語だけを表示しますか?
- 4. 最初のカンマまで単語を削除したい場合
- 5. ワードプレスの投稿タイトルの最初の5単語を表示しますか?
- 6. Solr:複数の単語の同義語:最初の単語のみがハイライト表示されます
- 7. シェルのprintfは最初の単語だけを表示します
- 8. 抜粋の最初の単語を削除しました
- 9. Word 2016/VBA単語リストの各単語の最初の使用を強調表示します。
- 10. WPのためのプラグインはタイトルまたは特定の単語の特定の単語で最新のニュースを表示しますか?
- 11. phpで配列の最初または最初のいくつかの "レイヤー"だけを表示しますか?
- 12. は、最初の単語に応じてファイルのいくつかの行を表示します
- 13. SQLAlchemyを使用した多言語テキストフィールド
- 14. F#パターンマッチ可変長最初の単語で区切られた単語のコマンド
- 15. cin.getlineは最初の単語を無視しますか?
- 16. 最初の単語を文で返しますか?
- 17. 英語の言語のローカライズされた表示名が動作しない
- 18. クリックした単語のテキストを表示します。 Jquery
- 19. テレグラムキーボードは英語以外の言語を表示していませんか?
- 20. ステートメントセパレータとして「セミコロン」を使用した最初のプログラミング言語
- 21. 特定の単語の後に最初の単語を抽出します。
- 22. チェック最初の単語(PHP)
- 23. 最初の単語ではなく2番目の単語を使用したJquery
- 24. モナカクラウド:iOSアプリ名をホーム画面に英語または日本語で表示
- 25. なぜ弾性検索でブラウザの最初の50行(イベント)しか表示されないのですか?
- 26. nltkで50個の最も頻度の低い単語をプロットする
- 27. 最初は隠されていたコンテンツを表示します
- 28. ワードプレスエディタの検索語をハイライト表示またはアンダーライン表示する
- 29. ExactTarget電子メールが一貫して韓国語または中国語の文字を表示しない
- 30. 既定の言語でページを非表示にします(代替言語で表示します)
私は+1、これは良いアイデアです;-) –