在保留html实体的同时在Rails中使用html_safe?

Aar*_*ter 3 ruby-on-rails actionview html-entities

假设我正在输出一个帖子标题,在我们的数据库中,它是Hello Y’all- 我可以不使用输出它.html_safe,但是这样的方式它不能在html中输出Hello Y’all吗?

也就是说,如果用户从使用印刷正确的撇号的文字处理器复制帖子标题,我会得到乱码输出,因为它&在数据库中逃脱了&.当然,我想要Bonnie & Clyde输出数据库中的标题,Bonnie & Clyde因为这是正确的HTML ...

有安全的方法吗?

Mac*_*ski 10

使用ActionView :: Helpers :: SanitizeHelper

<%= "Hello Y&#8217;all" %>
<%= sanitize "Hello Y&#8217;all" %>
Run Code Online (Sandbox Code Playgroud)

将产生:

Hello Y&#8217;all
Hello Y’all
Run Code Online (Sandbox Code Playgroud)