截断& Ruby on Rails中的简单格式字符串

时间:2014-02-16 17:23:20

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试获取一个字符串并使用simple_format渲染它,​​同时截断它。当我只使用一个或另一个时它起作用,但是当我同时使用它时它不起作用。为什么这不会同时执行simple_format和截断。

控制器

myString = "Apple’s New Laptop"

查看

<%= simple_format truncate( myString, :length => 20 ) %>

3 个答案:

答案 0 :(得分:3)

执行此操作的方法是在{/ 1}} 后对字符串使用truncate。由于truncate默认情况下会转义字符串,因此您必须使用simple_format选项。

escape: false

这有可能通过缩小> myString = "Apple&#8217;s New Laptop" > truncate(simple_format(myString), escape: false) > => "<p>Apple&#8217;s New Laptop..." > truncate(simple_format(myString), escape: false, length: 19) > => "<p>Apple&#8217;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 ) %>