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

也许我不明白这个问题,但如果内容是一个字符串

posts.content[0,20]

会给你前 20 个字符。

于 2012-04-12T18:36:04.513 回答
5

你总是可以尝试组合SantizeExcerpt,它们都是标准的 ActionView Helpers。当我想要更多随机文本样本时,我喜欢摘录:

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

如果您知道要显示第一段或该段的一部分之类的内容,那么我认为 Truncate 将是一个不错的选择,如@Edward 注释或 Sanitize 和@ERicM 方法的组合,例如:

sanitize(posts.content[0,20]). 
于 2012-04-12T19:28:51.267 回答
3

这也有效:)

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

这基本上说“打印字0到100”

于 2013-09-05T13:08:39.897 回答
2

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

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

于 2012-04-12T19:02:49.587 回答
2

您可以使用 <%= posts.content.truncate_words(18) %>以上 Rails 4.2 或 <%= posts.content[0,18] %>前 18 个字符。

于 2018-02-04T18:37:22.857 回答