`
stinge
  • 浏览: 153754 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rails ckeditor 安装与使用

阅读更多

rails ckeditor 安装与使用

 

安装

 

首先下载ckeditor插件 https://github.com/galetahub/rails-ckeditor

 

将插件放到vendor目录下,并把JavaScripts下的ckeditor文件夹放到项目public的javascripts下

 

安装成功,这样就能使用了。

 

使用

 

迁移文件   20100731013242_create_assets

 

class CreateAssets < ActiveRecord::Migration
  def self.up
    create_table :assets, :options=>"charset=utf8" do |t|
      t.string  :data_file_name
      t.string  :data_content_type
      t.integer :data_file_size

      t.integer :assetable_id
		  t.string  :assetable_type, :limit=>25
      t.string  :type, :limit=>25

		  t.integer :information_id
      t.string :information_type
      t.timestamps
    end
    add_index "assets", ["assetable_id", "assetable_type", "type"], :name => "ndx_type_assetable"
		add_index "assets", ["assetable_id", "assetable_type"], :name => "fk_assets"
  end

  def self.down
    drop_table :assets
  end
end 

 

模型文件

 

 

class Asset < ActiveRecord::Base

  # === List of columns ===
  #   id                : integer
  #   data_file_name    : string
  #   data_content_type : string
  #   data_file_size    : integer
  #   assetable_id      : integer
  #   assetable_type    : string
  #   type              : string
  #   locale            : integer
  #   user_id           : integer
  #   created_at        : datetime
  #   updated_at        : datetime
  # =======================

  belongs_to :assetable, :polymorphic => true

  def url(*args)
    data.url(*args)
  end
  alias :public_filename :url

  def filename
    data_file_name
  end

  def content_type
    data_content_type
  end

  def size
    data_file_size
  end

  def path
    data.path
  end

  def styles
    data.styles
  end

  def format_created_at
    I18n.l(self.created_at, :format=>"%d.%m.%Y %H:%M")
  end

  def to_xml(options = {})
    xml = options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent])

    xml.tag!(self.type.to_s.downcase) do
      xml.filename{ xml.cdata!(self.filename) }
      xml.size self.size
      xml.path{ xml.cdata!(self.url) }

      xml.styles do
        self.styles.each do |style|
          xml.tag!(style.first, self.url(style.first))
        end
      end unless self.styles.empty?
    end
  end
end

 

 

 

class AttachmentFile < Asset

  # === List of columns ===
  #   id                : integer
  #   data_file_name    : string
  #   data_content_type : string
  #   data_file_size    : integer
  #   assetable_id      : integer
  #   assetable_type    : string
  #   type              : string
  #   locale            : integer
  #   user_id           : integer
  #   created_at        : datetime
  #   updated_at        : datetime
  # =======================

  has_attached_file :data,
                    :url => "/assets/attachments/:id/:filename",
                    :path => ":rails_root/public/assets/attachments/:id/:filename"

  validates_attachment_size :data, :less_than=>10.megabytes
end
 

 

这些文件用来管理上传图片和文件,将如片的信息,路径存储到assets表里

 

 

迁移数据库即可

 

视图

 

引入ckeditor

 

<script type="text/javascript" src="/javascripts/ckeditor/ckeditor.js"></script>
 

 

rails代码

 

<%= f.ckeditor_textarea :admin_news, :content%>

 

 其中 admin_news为对象,content为字段名

 

这样就能用了!

 

工具栏

 

工具栏里的按钮默认按照配置文件config.js里的配置。

可以在一下文件里更改按钮以及位置、增减。

 

 

config.toolbar= [
    ['Source','-','Save','NewPage','Preview','-','Templates'],
    ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print'],
    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],['Smiley','SpecialChar'],
    '/',
    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'], 
    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'], 
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], 
    ['Link','Unlink'], ['Image','Table','HorizontalRule'],
    '/',
    ['Styles','Format','Font','FontSize'], 
    ['TextColor','BGColor'], 
    ['ShowBlocks','ImageButton'],
    ];

 

 

精简工具栏

 

 

config.toolbar_Basic =
[
    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'], 
    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'], 
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], 
    ['Link','Unlink'],
    '/',
    ['Styles','Format','Font','FontSize'], 
    ['TextColor','BGColor'], 
];

 

 

这样使用精简工具栏

 

 

<%= f.ckeditor_textarea :enterprise, :summary,:toolbar => "Basic"%>

 

 汉化

 

据说是在配置文件里做如下设置:

config.language = 'zh-cn';
 

却怎么试都没成功,无奈之下,将lang里zh-cn.js的文件copy到en.js中,并把所有的全删除

 

成功!

 

上传图片

 

插件已经能上传图片,但是图片自动保存都硬盘上,内容里只有一个路径,删除的时候,图片会留在服务器上,因此

要将图片信息保存在另外一张表中。

在assets表里增加新闻id字段,可以存储图片属于哪条新闻,利用正则表达式从内容里抽取出图片的路径存入表中,并把新闻id一并存入。

将一下方法放到create里,save之后

 

  def news_picture(string, news_id)
    regex = /[\/][\d]+[\/]/
    string1 = string.scan(regex).to_s
    regex1 = /[\d]+/
    picture = string1.scan(regex1)
    for i in picture do
      @picture = Asset.find_by_id(i.to_i)
      @picture.information_id = news_id
      @picture.information_type = '新闻'
      @picture.save
    end
  end
 

当删除时

#删除图片
  def delete_picture(id)
    @news_picture = Asset.find(:all, :conditions => ["information_id = ? and information_type = ?", id, "新闻"])
    unless @news_picture.blank?
      @news_picture.each do |picture|
        picture.destroy
        FileUtils.rmtree("RAILS_ROOT/public/assets/picturs/#{picture.id}/")  if File.exists? "RAILS_ROOT/public/assets/picturs/#{picture.id}"
      end
    end
  end
 放在destroy方法里,传入id,要先删图片,再删新闻。

 

分享到:
评论
2 楼 ywencn 2010-11-19  
以前搞过,现在换kindeditor了, ck在IE下的模样实在惨不忍睹....
1 楼 jinleileiking 2010-11-18  
嗯,以前搞过,顶一个。

相关推荐

    ckeditor-rails, 集成 CKEditor javascript库和 Rails 资产管道.zip

    ckeditor-rails, 集成 CKEditor javascript库和 Rails 资产管道 用于 Rails 资产管道的 CKEditorCKEditor 是一个WYSIWYG编辑器用来使用 inside 网页的库。ckeditor_rails gem 将 CKEditor 与 Rails 资产管道集成在...

    ckeditor-rails:将CKEditor javascript库与Rails资产管道集成

    ckeditor_rails gem将CKEditor与Rails资产管道集成在一起。 它可以在以下环境中工作: Ruby1.9.3+ 导轨3.0+基本用法安装ckeditor_rails gem 包括ckeditor_rails在Gemefile gem 'ckeditor_rails' 然后运行bundle ...

    CKeditor编辑器

    在实际应用中,开发者通常会将CKeditor与后端框架(如Django、Rails、Laravel等)结合,通过API接口实现数据的保存和加载。下载的压缩包"ckeditor"可能包含了CKeditor的源代码、文档、示例以及预设的插件,供开发者...

    ckeditor3.2编译器

    1. **下载与安装**:首先从官方渠道获取ckeditor3.2的压缩包,解压后得到相应的文件。 2. **引用资源**:在HTML页面中引入ckeditor的JavaScript文件,通常位于`/js/ckeditor.js`路径下。 3. **初始化编辑器**:通过...

    rails_admin_image_manager:RailsAdmin和CKEditor的图像管理器

    RailsAdmin_ImageManager RailsAdmin和CKEditor的图像管理器。 安装 将此行添加到您的应用程序的Gemfile中: ... 安装图像管理器CKEditor插件 mkdir -p app/assets/javascripts/ckeditor && touch app

    ckeditor:用于导轨的Ckeditor 4.x集成gem

    ) Rails 5.x,4.2.x集成文件浏览器HTML5文件上传器用于formtastic和simple_form表单生成器的钩子与授权框架和集成安装对于基本用法,只需包含ckeditor gem: gem 'ckeditor'或者,如果您想使用Github的最新版本:...

    rich:固执己见的CKEditor编辑器,用于Rails,具有灵活的图像上传功能

    文件管理器也可以与CKEditor分开使用。 目前,Rich与Active Admin,Rails Admin和Vanilla Formtastic(版本1和2)集成在一起。 上载的文件可以存储在文件系统上,也可以存储在S3上(通过Paperclips内置的S3支持)。...

    redmine 2.6插件包

    redmine_zenedit:提供全屏编辑和黑色背景功能(貌似和ckeditor有冲突,使用ckeditor的时候无法启用这个功能) 插件安装目录 redmine/plugins/ 主题安装目录 redmine/public/theme/ 插件安装方法: 步骤1:bundle ...

    flatpages:Rails 应用程序的简单静态页面

    平页用于在数据库中保存静态页面的简单 gem安装将此行添加到应用程序的 Gemfile 中: gem 'ckeditor'gem 'flatpages' 安装配置ckeditor 然后运行 rails generate flatpages:install .并在根路由之前添加到您的 ...

    frontendeditor:前端编辑器

    它必须与 frontendeditor_ckeditor 一起使用。安装将此行添加到应用程序的 Gemfile 中: gem 'frontendeditor'然后执行: $ bundle或者自己安装: $ gem install frontendeditor贡献分叉吧创建您的功能分支( git ...

    毕业设计-在线学习.zip

    通常,构建在线学习平台会使用Web开发框架,如Django、Spring Boot、Ruby on Rails或AngularJS等。这些框架能够简化开发过程,提供模板引擎、路由管理、数据库集成等功能。 2. **前端技术**: - ...

    tramway-admin:快速管理面板开发

    如何使用我的插件。 1.将此宝石添加到Gemfile 宝石文件 gem 'tramway-admin' gem 'tramway-user' gem 'aasm' gem 'bcrypt' gem 'haml-rails' gem 'selectize-rails' gem 'bootstrap' gem 'jquery-rails' gem '...

    Jawhar:阿拉伯文经理

    这个项目使用了先进的技术栈,包括Ruby on Rails框架和PostgreSQL数据库,确保了系统的稳定性和可扩展性。下面将详细讨论这个项目所涉及的技术和知识点。 1. **Ruby 2.6.5**: Ruby是一种面向对象的脚本语言,以其...

    daily-smarty

    总的来说,DailySmarty项目展示了Ruby on Rails在实际应用中的使用,包括响应式设计、版本升级、组件替换以及文件存储策略的选择。对于想学习或提升Ruby on Rails技能的开发者来说,这是一个很好的实践案例。

    精品课程网(含视频转码与播放、上传,登录。注册等适合课设)

    TinyMCE、CKEditor和Quill是常用的富文本编辑器库,它们提供WYSIWYG(所见即所得)的编辑体验,方便教师上传课程资料,包括课件、笔记和作业说明。 ### 5. 用户界面与交互设计 良好的用户体验是精品课程网成功的...

    java开源包8

    Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...

    在线教育系统代码

    1. **Web开发框架**:在线教育系统通常基于Web应用框架构建,如Spring Boot、Django或Ruby on Rails。这些框架提供了一种高效的方式来组织和构建复杂的Web应用,简化了服务器端逻辑的开发。 2. **前端技术**:系统...

    java开源包1

    Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...

    java开源包11

    Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...

    java开源包2

    Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...

Global site tag (gtag.js) - Google Analytics