限制视图中的字符/单词- ruby on rails

uqxowvwt  于 2022-11-04  发布在  Ruby
关注(0)|答案(4)|浏览(105)

我在一个非常简单的博客应用程序的主页上显示了最近的评论,这个应用程序是我在Ruby on Rails中构建的。我想限制评论表的'body'列中显示的字符数。我假设我可以在〈%=h comment.body %〉的代码末尾添加一些内容,但我还不知道应该添加什么内容,因为我对Ruby和Rails都是新手。
下面是我在/views/posts/index.html.erb文件中的代码:

<% Comment.find(:all, :order => 'created_at DESC', :limit => 5).each do |comment| -%>
    <p>
        <%=h comment.name %> commented on 
        <%= link_to h(comment.post.title), comment.post %><br/>
        <%=h comment.body %>
        <i> <%= time_ago_in_words(comment.created_at) %> ago</i>
    </p>
    <% end -%>
b4lqfgs4

b4lqfgs41#

尝试使用截断视图帮助器

<%=h truncate(comment.body, :length => 80) %>
vbkedwbf

vbkedwbf2#

我只是找到了另一种方式(如果你不想添加“...”)

<%= comment.body.first(80) %>

RoR API for String中所说:
第一个(限制= 1)
返回第一个字符。如果提供了限制,则返回从字符串开头到限制值为止的子字符串。如果给定的限制大于或等于字符串长度,则返回self。

comment = "1234567890"

comment.first(5)

# => "12345"

comment.first(10)

# => "1234567890"

comment.first(15)

# => "1234567890"
vmpqdwk3

vmpqdwk33#

如果您使用的是rails 4.2或更高版本,则可以使用truncate_words方法。
例如:
“在一个一切都令人敬畏的世界里”。truncate_words(3)
输出:“在一个世界里...”

yzxexxkh

yzxexxkh4#

如果要限制字符数,也可以使用truncate方法。

<%= "#{message.truncate(charcount)}" %>

相关问题