老妖的博客
现实的中没有几个人能够真为对方去死,甚至山盟海誓很快就会在金钱面前变的微不足道,这才是生活。没有永远的爱,除了你的父母对你,当然也就没有永远的恨,更没有永远的痛,时间是最好的治疗大师,它会很快抚平你心灵上累累的伤痕。很多年以后你想起来时,那些在你生命中汹涌来往的人群至多是个模糊的影子或者毫无意义的名字
posts - 105,  comments - 171,  trackbacks - 0
1.下载fckeditor_plugin-0.3.2.zip,目前版本为0.3.2
2.解压到vendor\plugins目录下,并且重新命名为fckeditor
3.到该应用程序根目录下,然后运行rake fckeditor:install,则执行自动安装
4.在自己的view层中添加
<%= javascript_include_tag :fckeditor %>
以及在你需要编辑的字段textarea替换为
<%= fckeditor_textarea("book", "desc", { :toolbarKit => 'Simple', :width => '100%', :height => '200px' }) %>
第一个参数为你的domain对象,desc为你的编辑字段值,其他顾名思义
然后运行你的页面程序,发现simple upload有点bug,上传后javascript报错
5.追踪代码发现
vendor\plugins\fckeditor\app\controllers\fckeditor_controller.rb下的

  def upload
    self.upload_file
  end
调用了upload_file方法
def upload_file
    @new_file 
= params[:NewFile]
    @url 
= upload_directory_path
    begin
      ftype 
= @new_file.content_type.strip
      
if ! MIME_TYPES.include?(ftype)
        @errorNumber 
= 202
        puts 
"#{ftype} is invalid MIME type"
        raise 
"#{ftype} is invalid MIME type"
      
else
        path 
= current_directory_path + "/" + @new_file.original_filename
        File.open(path,
"wb",0664do |fp|
          FileUtils.copy_stream(@new_file, fp)
        end
        @errorNumber 
= 0
      end
    rescue 
=> e
      @errorNumber 
= 110 if @errorNumber.nil?
    end
    
    # Fix provided by Nicola Piccinini 
-- http://superfluo.org
    render :text => %Q'<script>window.parent.frames[\'frmUpload\'].OnUploadCompleted(#{@errorNumber});</script>'
    #render :inline 
=> 'page << "window.parent.frames[\'frmUpload\'].OnUploadCompleted(#{@errorNumber}, \'#{@new_file}\');"', :type => :rjs
  end
中的
render :text => %Q'<script>window.parent.frames[\'frmUpload\'].OnUploadCompleted(#{@errorNumber});</script>'
在浏览服务器时是正常的,但是在快速上传中不应该返回这个script语句
则修改upload方法
def upload
    @new_file 
= params[:NewFile]
    @url 
= upload_directory_path
    begin
      ftype 
= @new_file.content_type.strip
      
if ! MIME_TYPES.include?(ftype)
        @errorNumber 
= 202
        puts 
"#{ftype} is invalid MIME type"
        raise 
"#{ftype} is invalid MIME type"
      
else
        path 
= current_directory_path + "/" + @new_file.original_filename
        File.open(path,
"wb",0664do |fp|
          FileUtils.copy_stream(@new_file, fp)
        end
        @errorNumber 
= 0
      end
    rescue 
=> e
      @errorNumber 
= 110 if @errorNumber.nil?
    end
    
    # Fix provided by Nicola Piccinini 
-- http://superfluo.org
    render :text => %Q'<script>window.parent.OnUploadCompleted(#{@errorNumber},\"#{UPLOADED}/#{params[:Type]}\",\"#{@new_file.original_filename}\",\"\");</script>'
  end
快速上传问题修复

6.发现文件夹里边如果上传图片过多不好备份,故采用/年/月方式保存
修改代码如下:
   def upload
    @new_file 
= params[:NewFile]
    @url 
= upload_directory_path
    begin
      ftype 
= @new_file.content_type.strip
      
if ! MIME_TYPES.include?(ftype)
        @errorNumber 
= 202
        puts 
"#{ftype} is invalid MIME type"
        raise 
"#{ftype} is invalid MIME type"
      
else
        path 
= date_directory_path + "/" + @new_file.original_filename
        File.open(path,
"wb",0664do |fp|
          FileUtils.copy_stream(@new_file, fp)
        end
        @errorNumber 
= 0
      end
    rescue 
=> e
      @errorNumber 
= 110 if @errorNumber.nil?
    end
    
    # Fix provided by Nicola Piccinini 
-- http://superfluo.org
    render :text => %Q'<script>window.parent.OnUploadCompleted(#{@errorNumber},\"#{UPLOADED}/#{params[:Type]}/#{Time.now.year}/#{Time.now.month}/#{@new_file.original_filename}\",\"#{@new_file.original_filename}\",\"\");</script>'
  end 
  
private
  def date_directory_path
    base_dir 
= "#{UPLOADED_ROOT}/#{params[:Type]}/#{Time.now.year}/#{Time.now.month}"
    #Dir.mkdir(base_dir,
0775) unless File.exists?(base_dir)
    FileUtils.mkdir_p base_dir
    
"#{base_dir}"
  end
7.同理可以对其上传文件名称进行随机处理以防重名,就不多说了。
做此笔记,抛砖引玉。

发现rails的plugin机制挺不错的,比较灵活,不过网上介绍plugin的文章真的不是很多
posted on 2006-11-04 01:29 老妖 阅读(4345) 评论(11)  编辑  收藏 所属分类: rails

FeedBack:
# re: rails实战--(四)FCKEditor与rails的集成
2006-11-04 02:46 | li
ROR plug-in is really cool stuff. It's more flexible than many other web framework's plug-in approach...

  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2006-11-05 17:10 | jelly->
呵呵, 变成blograils了,

我一般简单应用的时候,喜欢直接在helper里写一个fckeditor的方法, 像在普通htm里使用一样。   回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2006-11-06 19:41 | aotianlong
Thank you . your article will posted at http://railser.com .  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2006-12-09 00:55 | Jerry[匿名]
发现这个:toolbarKit => 'Simple',显示的根本不是Simples方式,还是复杂方式。不知道为什么。  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2006-12-20 17:46 | raise
很抱歉 打扰了。

我按照你的方法配制了,但是没有成功,不知您是否可以提供一个已经配制成功的例子给我。nmlnj@163.com

谢谢了!!  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2006-12-20 17:51 | raise
nmlnj@163.com

已经成功了

谢谢

打扰了  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2007-08-29 16:44 | Fengbo
@Jerry[匿名]
看看fckeditor里面toolKitset有没有一个Simple的定义。  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2007-09-20 17:36 | CFC
:toolbarKit是錯誤的
請改成
:toolbarSet

:)  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2007-09-25 16:38 | 陈刚
如果是象博客那样的多用户系统,那么需要上传文件的目录需要分用户存放。如何实现呢?  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成[未登录]
2007-11-30 16:01 | 小马
现实的中没有几个人能够真为对方去死,甚至山盟海誓很快就会在金钱面前变的微不足道,这才是生活。没有永远的爱,除了你的父母对你,当然也就没有永远的恨,更没有永远的痛,时间是最好的治疗大师,它会很快抚平你心灵上累累的伤痕。很多年以后你想起来时,那些在你生命中汹涌来往的人群至多是个模糊的影子或者毫无意义的名字

一席话惊醒梦中人,命陪命陪命命陪……  回复  更多评论
  
# re: rails实战--(四)FCKEditor与rails的集成
2014-09-04 14:29 | 我来学习
提供基本的东西,但是允许轻松扩展自定义  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2014年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

随笔分类(48)

随笔档案(104)

好友链接

我的豆瓣

积分与排名

  • 积分 - 218728
  • 排名 - 256

最新评论

阅读排行榜