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

use*_*029 5 ruby ruby-on-rails ruby-on-rails-4

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

调节器

myString = "Apple’s New Laptop"
Run Code Online (Sandbox Code Playgroud)

视图

<%= simple_format truncate( myString, :length => 20 ) %>
Run Code Online (Sandbox Code Playgroud)

Mei*_*ier 1

Rails 4 中的 truncate-helper 发生了一些变化。文档确实告诉我们:

结果被标记为 HTML 安全,但默认情况下会进行转义,除非 :escape 为 false。

http://apidock.com/rails/v4.0.2/ActionView/Helpers/TextHelper/truncate

Rails 通常会转义所有字符串。如果您只想在代码中的字符串中放置一些 unicode 字符,可以通过在十六进制代码中使用 \u 表示法来实现。然后 truncate 也会将该字符计为一个字符。

myString = "Apple\u2019s New Laptop"
Run Code Online (Sandbox Code Playgroud)