保留由Rails中的CK编辑器创建的文本的样式



我已经通过galetahub/ceditor gem成功地将CK Editor集成到了我的Rails 4应用程序中。我在我的应用程序中使用CK编辑器来创建一个模型Post。CK编辑器在创建帖子时工作得很好,但在创建后,文本显示为纯html代码,而不是我通过CK编辑器创建的样式代码。

posts/new.html.erb

<div class="field">
<%= f.label :content %><br>
<%= f.cktext_area :content %>
</div>

posts/show.html.erb

<p>
<strong>Content:</strong>
<%= @post.content %>
</p>

我也厌倦了raw(@post.content)@post.content.html_safe,但块引号在创建时并没有按原样显示。

CKEditor被称为所见即所得编辑器,这意味着它在DB 中存储纯HTML

您的系统可能存在两个问题:

  1. CKEditor没有正确地将HTML保存到数据库中
  2. 你没有在应用程序中正确调用HTML代码

DB

我会从查看数据库开始——你的CKEditor正在保存HTML吗?

posts/content列中,应该有一系列具有有效html语法的记录。如果没有,你的问题将是如何保存来自CKEditor 的数据


查看

raw().html_safe基本上将Rails变量处理为实际HTML(意味着<p>将被呈现为段落等)

如果你看到的是"裸"输出的代码(你只能看到<p>等),我想问题会出现在你提交的代码类型上(你提到了blockquotes)

你能用正在输出的代码更新我们吗?

CKEditor默认情况下会过滤内联样式和javascript。

最简单的解决方案是转到config.js并设置:

config.allowedContent = true;

参考:CKEditor自动从div 中剥离类

最新更新