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

时间:2014-02-12 13:10:46

标签: javascript css ruby-on-rails

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

文章/ new.html.erb

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

文章/ show.html.erb

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

我也已经累了raw(@post.content)@post.content.html_safe但是块引用并没有像创建时那样出现。

2 个答案:

答案 0 :(得分:3)

CKEditor被称为WYSIWYG editor,这意味着它将纯HTML存储在您的数据库中

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

  1. CKEditor未正确将HTML保存到您的数据库
  2. 您没有在应用中正确调用HTML代码

  3. <强> DB

    我首先要查看数据库 - 您的CKEditor是否保存了HTML?

    posts / content列中,您应该拥有一系列具有有效html语法的记录。如果没有,您的问题将出在如何从CKEditor中保存数据


    查看

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

    如果您看到“裸”输出的代码(您可以看到<p>等),我会想到问题将出在您提交的代码类型上(您提到了块引用)

    您能否使用正在输出的代码更新我们?

答案 1 :(得分:0)

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

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

config.allowedContent = true;

请参阅:CKEditor automatically strips classes from div