仅显示帖子中的一些单词作为预览

时间:2012-04-12 18:17:56

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我正在使用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>           
    <% } %>

6 个答案:

答案 0 :(得分:5)

也许我不理解这个问题,但是如果内容是字符串

posts.content[0,20]

会给你前20个字符。

答案 1 :(得分:5)

您可以随时尝试SantizeExcerpt的组合,这两者都是标准的ActionView助手。当我想要更多随机的文本样本时,我喜欢摘录:

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

如果你知道你想要显示第一段或该段落的一部分,那么我认为Truncate将是一个很好的选择,如@Edward音符或Sanitize和@ ERicM方法的组合,例如:

sanitize(posts.content[0,20]). 

答案 2 :(得分:5)

答案 3 :(得分:3)

这也有效:)

<%= posts.content.split[0..100].join(" ") %>

这基本上说&#34;打印字0到100&#34;

答案 4 :(得分:2)

或者您可以使用truncate html gem - https://github.com/hgimenez/truncate_html

它为您提供了第一个多个字符,并确保所有html标记都正确关闭。

答案 5 :(得分:2)

你可以使用 在{Rails 4.2}之上<%= posts.content[0,18] %> 要么 {{1}}前18个字符。