我目前正在尝试截断任何超过65个字符的字符串。
我的代码是
<title><%= truncate(title.html_safe, length:65) %></title>
适用于超过65个字符的标题。但是正好65个字符的标题仍然会被截断。
例如:
标题:“这篇文章正好是65个字符的字符 characte“
在页面上显示为“此帖子正好是65个字符的字符 人物chara ......“
我不应该使用截断吗?
答案 0 :(得分:5)
truncate
是正确的方法。这可能是您的rails版本中的错误?这是我在控制台上得到的内容:
[5] pry(main)> helper.truncate("This post is exactly 56 characters characters characters characte", length: 65)
=> "This post is exactly 56 characters characters characters characte"
[6] pry(main)> helper.truncate("This post is exactly 56 characters characters characters characte", length: 64)
=> "This post is exactly 56 characters characters characters char..."
我在这个例子中运行Rails 4.0.4。
答案 1 :(得分:3)
如果您使用
rails 4.2
或以上,则可以使用truncate_words
方法。
<title><%= (title.html_safe).truncate_words(5) %></title>
答案 2 :(得分:1)
title =“这篇文章正好是56个字符的字符字符”.length =&GT; 65
<title><%= truncate(title.html_safe, length:56) %></title>
#将被截断
<title><%= truncate(title.html_safe, length:65) %></title>
#这应该可行,我只是尝试过。
Rails 3.2.17
答案 3 :(得分:1)
truncate方法正如预期的那样工作。请在调用title.html_safe后输出长度,您的字符串是否可能包含一些尾随空格?
答案 4 :(得分:1)
我们称之为 Ellipsis
。只需添加上述答案,您就可以通过 css,jquery和rails实现省略号。
.truncate {
width: 250px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<强> Jquery:
强>
有一个非常好的jquery plugin dotdotdot
。我使用过我的一个项目,它就像一个魅力。它巧妙地使用父元素的高度和宽度来显示省略号。
<强> Rails:
强>
Rails有一个文本助手truncate,可以像:
一样使用<%= truncate("Once upon a time in a world far far away", length: 65) %>
CSS显然是实现省略号的最快捷方式,但它的缺点是没有提供限制角色的方法,让它在多行中工作变得棘手< /强>
Jquery插件dotdotdot 适用于多行,但我不认为它可以选择指定字符限制。
Rails明显将服务器端截断,并允许您选择指定字符数限制。