【问题标题】:Why am I losing formatting while using simple_format in ruby on rails 4.2.6?为什么在 Rails 4.2.6 上的 ruby​​ 中使用 simple_format 时会丢失格式?
【发布时间】:2016-06-08 22:48:14
【问题描述】:

当我使用 html_safe 时,

<%= @micropost.content.html_safe  %>

我得到以下格式正确的输出。

但是当我使用 simple_format 时,我会失去中心对齐并在列表中出现我不想要的换行符。

<%= simple_format(auto_link(@micropost.content, html: { target: '_blank' }), {}, :sanitize => false) %>

这是我单独使用 auto_link 和 sanitize false 时得到的结果。

<%= auto_link(@micropost.content, html: { target: '_blank' }, sanitize: false) %>

这是我单独使用 auto_link 和 sanitize true 时得到的结果。

<%= auto_link(@micropost.content, html: { target: '_blank' }, sanitize: true) %>

这是我在帖子中的内容

>> micp.content
=> "<p style=\"text-align: center;\">Pictre </p><h2 style=\"text-align: center;\">restse</h2><h2>sfsdfsdf</h2><p>sdfdsf</p><p style=\"text-align: center;\">dsfds</p><p>sfsdfsdf</p><ol><li>sdfdsfsdf</li><li>sdfsdfdsf</li><li>sdfdsf</li></ol><div>dfsdfsdfsd</div><p style=\"text-align: center;\">dfsdf</p><ol><li>dsfsdf</li><li>sdf</li><li>sdfsd</li></ol><p style=\"text-align: center;\"><br></p>"
>> 

我该如何解决这个问题并在他/她的帖子中使用用户想要的格式?谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby redactor


    【解决方案1】:

    这是来自 api 文档:

    simple_format - 返回使用简单转换为 HTML 的文本 格式化规则。两个或多个连续换行符(\n\n)是 被视为一个段落并包裹在&lt;p&gt; 标签中。一个换行符 (\n) 是 被视为换行符并附加了&lt;br /&gt; 标签。这种方法 不会从文本中删除换行符。

    所以代替:

    <%= simple_format(auto_link(@micropost.content, html: { target: '_blank' }), {}, :sanitize => false) %>
    

    您可能应该执行以下操作:

    <%= auto_link(@micropost.content, html: { target: '_blank' }, sanitize: false) %>
    

    请参阅simple_formatrails_autolink 了解更多信息。

    【讨论】:

    • 我试过你的解决方案,我只得到 html 标签。我已经更新了问题中的输出。
    • 试试sanitize: true
    • 我现在得到了输出,但我仍然丢失了格式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多