【程序员笔记】rails使用kindeditor实现富文本编辑器

我的rails博客的搭建过程中,感觉最开始写的的输入框是在是太丑了,然后发现网上有对rails非常友好的kindeditor编辑器。所以本着DRY原则,放到自己的项目中。

【程序员笔记】rails使用kindeditor实现富文本编辑器_第1张图片
ruby on rails

一. 安装kindeditor一共五步走。

  1. 第一步,将对应的gem放到自己的gemfile文件中。
  gem 'rails_kindeditor'
  1. 第二步,更新gem依赖
  bundle install
  1. 第三步,安装对应的gem组件
rails g rails_kindeditor:install
  1. 第四步,将kindeditor对应的文件放到自己app/assets目录下
 rails kindeditor:assets
  1. 更新自己的html.erb文件
    将原来的
<%= f.text_field :content %>

改成

      <%= f.kindeditor :content ,:window_onload => true  %>

以上正式教程就结束了,看一下效果。

【程序员笔记】rails使用kindeditor实现富文本编辑器_第2张图片
kindeditor的效果

二. 安装过程中可能碰见的一个bug

看起来安装过程很简单,但是实际上我在使用的时候碰到的一个问题:没有找到app/assets目录下的kindeditor。具体显现出来的问题是我们的界面和之前的没有什么变化

最后发现问题症结在我们的kindeditor的js文件并没有添加到我们的项目中。

解决措施是在app/assets/javascripts/application.js中添加一句话

//= require kindeditor

然后重新启动一下你的服务器就可以了。

三. 显示的时候出现不能正常显示的问题

bug描述我们将内容保存到数据库中之后,等我们想显示的时候,我们发现得到的竟然是带有html标签的文本,而不是我们想象中的对应格式的文件。

bug原因是rails有自我保护机制,当判断我们的string中有<和>等标签时,他会自己转义。看一下下面的例子

this is a passage for rails

会被rails转移为下面格式的语言

<h1>
    this is a passage for rails
</h1>

可以清晰的看到,被转义了。

bug修复
将我们之前的

     <%= @post.content %>-->

改成

     
        <%=  @post.content.html_safe %>

或者

   
       <%= raw @post.content %>

解决原理 就是讲我们的string设置为可信任的从而不转义,从而能够正常显示。

以上,大家继续加油!

你可能感兴趣的:(【程序员笔记】rails使用kindeditor实现富文本编辑器)