我正在使用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> <a href="#" class="comments">Comments</a> (33)</p>
<% } %>
答案 0 :(得分:5)
也许我不理解这个问题,但是如果内容是字符串
posts.content[0,20]
会给你前20个字符。
答案 1 :(得分:5)
您可以随时尝试Santize和Excerpt的组合,这两者都是标准的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个字符。