Rails_admin 显示由 CKEditor 以 html 格式编写的文本

Rails_admin show text written by CKEditor with html format

我已经为我的 rails_admin 集成了 CKEditor。在 edit 页面我添加了 CKEditor 并写了文本。

在我的模型显示页面中,它是这样显示的:

我的 show 代码:

show do
  include_all_fields

end

我需要添加什么,以显示我在 CKEditor 上编写的文本,能够在 rails_admin 中显示?

====更新====

我在 production.rb and development.rb 中添加了 config.assets.precompile += %w( ckeditor/* ) 代码。然后我有 运行 rake assets 预编译任务并重新启动我的服务器。它仍然在我上面的图片中显示相同的东西。

即使可以显示html格式的文本,也会产生新的问题。正如您在图片中看到的,有 img 标签,其 src 显示的不是我上传图片的完整目录。如果我需要将此格式化文本作为 JSON 发送到我的 phone?

====更新====

我打开了浏览器的代码检查器以查看我页面的 description 部分。它向我展示了这个:

我用CKEditor创建的html代码写得很好,但是我的浏览器不认为它是html代码并且有引号。这些引号是否影响我的浏览器将其显示为纯文本?

可能你的CKEditor配置startupMode设置为'source'。如果是这样,请将其删除。

在资产预编译过程中,Ckeditor gem 会将 vendor/assets/ckeditor 文件夹中的源代码编译到如下所示的特殊资源包中:

$ ls public/assets/ckeditor/
application.js
application.js.gz
application-1f3fd70816d8a061d7b04d29f1e369cd.js
application-1f3fd70816d8a061d7b04d29f1e369cd.js.gz
application-450040973e510dd5062f8431400937f4.css
application-450040973e510dd5062f8431400937f4.css.gz
application.css
application.css.gz
ckeditor-b7995683312f8b17684b09fd0b139241.pack
ckeditor.pack
filebrowser
images
plugins
skins
lang

而且,显然 ckeditor.js 只是不存在。为了提供必要的源文件,我不得不明确地将它们添加到生产环境的预编译数组中 config/environments/production.rb:

> config.assets.precompile += %w( ckeditor/* )

然后run rake assets:precompile

我找到了解决办法。不知道好不好:

show do
  include_all_fields

  field :description do
    pretty_value do
      value.html_safe
    end
  end
end

我找到了另一个解决方案,对我来说它工作正常:

让它成为你的 config/initializers/rails_admin.rb

config.model Post do
    edit do
      field :title, :text do 
        label 'title'
      end
      field :content, :ck_editor, :text do
        label 'content'
      end
    end
  end

和你的index/show

<%= raw @post.content %>