我正在尝试获取一个字符串并使用simple_format渲染它,同时截断它。当我只使用一个或另一个时它起作用,但是当我同时使用它时它不起作用。为什么这不会同时执行simple_format和截断。
控制器
myString = "Apple’s New Laptop"
查看
<%= simple_format truncate( myString, :length => 20 ) %>
答案 0 :(得分:3)
执行此操作的方法是在{/ 1}} 后对字符串使用truncate
。由于truncate默认情况下会转义字符串,因此您必须使用simple_format
选项。
escape: false
这有可能通过缩小> myString = "Apple’s New Laptop"
> truncate(simple_format(myString), escape: false)
> => "<p>Apple’s New Laptop..."
> truncate(simple_format(myString), escape: false, length: 19)
> => "<p>Apple’s..."
来创建不平衡的HTML标记,因此请谨慎使用。
答案 1 :(得分:1)
Rails 4中的truncate-helper发生了一些变化。 文档告诉我们:
结果标记为HTML安全,但默认情况下会被转义,除非:escape为false。
http://apidock.com/rails/v4.0.2/ActionView/Helpers/TextHelper/truncate
Rails通常会逃避所有字符串。如果您只想在代码中的字符串中放入一些unicode字符,可以使用带有十六进制代码的\ u表示法来实现。然后truncate也会将char计为一个char。
myString = "Apple\u2019s New Laptop"
答案 2 :(得分:1)
这可能会迟到但对其他人有用。这对我有用。
<%= truncate(myString, escape: false, length: 20 ) %>