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,要先删图片,再删新闻。
分享到:
相关推荐
ckeditor-rails, 集成 CKEditor javascript库和 Rails 资产管道 用于 Rails 资产管道的 CKEditorCKEditor 是一个WYSIWYG编辑器用来使用 inside 网页的库。ckeditor_rails gem 将 CKEditor 与 Rails 资产管道集成在...
ckeditor_rails gem将CKEditor与Rails资产管道集成在一起。 它可以在以下环境中工作: Ruby1.9.3+ 导轨3.0+基本用法安装ckeditor_rails gem 包括ckeditor_rails在Gemefile gem 'ckeditor_rails' 然后运行bundle ...
在实际应用中,开发者通常会将CKeditor与后端框架(如Django、Rails、Laravel等)结合,通过API接口实现数据的保存和加载。下载的压缩包"ckeditor"可能包含了CKeditor的源代码、文档、示例以及预设的插件,供开发者...
1. **下载与安装**:首先从官方渠道获取ckeditor3.2的压缩包,解压后得到相应的文件。 2. **引用资源**:在HTML页面中引入ckeditor的JavaScript文件,通常位于`/js/ckeditor.js`路径下。 3. **初始化编辑器**:通过...
RailsAdmin_ImageManager RailsAdmin和CKEditor的图像管理器。 安装 将此行添加到您的应用程序的Gemfile中: ... 安装图像管理器CKEditor插件 mkdir -p app/assets/javascripts/ckeditor && touch app
) Rails 5.x,4.2.x集成文件浏览器HTML5文件上传器用于formtastic和simple_form表单生成器的钩子与授权框架和集成安装对于基本用法,只需包含ckeditor gem: gem 'ckeditor'或者,如果您想使用Github的最新版本:...
文件管理器也可以与CKEditor分开使用。 目前,Rich与Active Admin,Rails Admin和Vanilla Formtastic(版本1和2)集成在一起。 上载的文件可以存储在文件系统上,也可以存储在S3上(通过Paperclips内置的S3支持)。...
redmine_zenedit:提供全屏编辑和黑色背景功能(貌似和ckeditor有冲突,使用ckeditor的时候无法启用这个功能) 插件安装目录 redmine/plugins/ 主题安装目录 redmine/public/theme/ 插件安装方法: 步骤1:bundle ...
平页用于在数据库中保存静态页面的简单 gem安装将此行添加到应用程序的 Gemfile 中: gem 'ckeditor'gem 'flatpages' 安装配置ckeditor 然后运行 rails generate flatpages:install .并在根路由之前添加到您的 ...
它必须与 frontendeditor_ckeditor 一起使用。安装将此行添加到应用程序的 Gemfile 中: gem 'frontendeditor'然后执行: $ bundle或者自己安装: $ gem install frontendeditor贡献分叉吧创建您的功能分支( git ...
通常,构建在线学习平台会使用Web开发框架,如Django、Spring Boot、Ruby on Rails或AngularJS等。这些框架能够简化开发过程,提供模板引擎、路由管理、数据库集成等功能。 2. **前端技术**: - ...
如何使用我的插件。 1.将此宝石添加到Gemfile 宝石文件 gem 'tramway-admin' gem 'tramway-user' gem 'aasm' gem 'bcrypt' gem 'haml-rails' gem 'selectize-rails' gem 'bootstrap' gem 'jquery-rails' gem '...
这个项目使用了先进的技术栈,包括Ruby on Rails框架和PostgreSQL数据库,确保了系统的稳定性和可扩展性。下面将详细讨论这个项目所涉及的技术和知识点。 1. **Ruby 2.6.5**: Ruby是一种面向对象的脚本语言,以其...
总的来说,DailySmarty项目展示了Ruby on Rails在实际应用中的使用,包括响应式设计、版本升级、组件替换以及文件存储策略的选择。对于想学习或提升Ruby on Rails技能的开发者来说,这是一个很好的实践案例。
TinyMCE、CKEditor和Quill是常用的富文本编辑器库,它们提供WYSIWYG(所见即所得)的编辑体验,方便教师上传课程资料,包括课件、笔记和作业说明。 ### 5. 用户界面与交互设计 良好的用户体验是精品课程网成功的...
Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...
1. **Web开发框架**:在线教育系统通常基于Web应用框架构建,如Spring Boot、Django或Ruby on Rails。这些框架提供了一种高效的方式来组织和构建复杂的Web应用,简化了服务器端逻辑的开发。 2. **前端技术**:系统...
Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...
Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...
Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成...