4

Ruby on Rails 3.2.1 とモデル @post を使用しています。問題は、すべてのコンテンツではなく、プレビューのように最初のアプリ ページに最初の段落またはいくつかの単語のみを表示したいことです。どうすればそれができますか?

索引:

<% @posts.each{|posts| %>
        <h1 class="title"><%= link_to posts.title, posts %></h1>
            <p class="byline" style="text-align: right; font-weight: bold;">Raksts izveidots: <%= posts.created_at.utc.strftime("%d.%m.%Y") %></p>
            <div class="entry">
                <p><%= raw posts.content %></p>
            </div>
        <p class="meta"><a href="#" class="more">Read More</a> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a href="#" class="comments">Comments</a> (33)</p>           
    <% } %>
4

6 に答える 6

6

組み込みツールを理解する

于 2012-04-12T20:41:06.673 に答える
5

どちらも標準の ActionView ヘルパーであるSantizeExcerptの組み合わせをいつでも試すことができます。テキストのランダムなサンプルがもっと必要な場合は、抜粋が好きです。

sanitize(excerpt(post.content,"Some key text",240))

最初の段落またはその段落の一部のようなものを表示したいことがわかっている場合は、次のような @Edward のメモまたは Sanitize と @ERicM のアプローチの組み合わせとして Truncate が適切なオプションになると思います。

sanitize(posts.content[0,20]). 
于 2012-04-12T19:28:51.267 に答える
5

質問を理解していないかもしれませんが、コンテンツが文字列の場合

posts.content[0,20]

最初の 20 文字が表示されます。

于 2012-04-12T18:36:04.513 に答える
2

または、truncate html gem を使用することもできます - https://github.com/hgimenez/truncate_html

最初の数文字を表示し、すべての html タグが適切に閉じられていることを確認します。

于 2012-04-12T19:02:49.587 に答える