blackwolf1983 发表于 2013-2-7 03:51:15

Goodbye attachment_fu, hello Paperclip--准备工作

Windows上必须进行的步骤:

  如果你是一个跟我一样长期使用windows开发的rails开发者,那么你必定不会对让Paperclip运行起来所需要的一些特定步骤感到惊讶。
1.安装插件

  你可以把Paperclip作为一个来自GitHub的普通Rails插件那样安装——在命令行输入如下命令: 
 
ruby script/plugin install git://github.com/thoughtbot/paperclip.git 
你需要一个GIT工具,thoughtbot这周关闭了他们的SVN仓库,而在Rubyforge的Pagergem的gem已经太老了,很可能不能使用,目前也不能通过Git获得它的gem包。
 
2.下载ImageMagick
Paperclip使用ImageMagick来进行图片处理。值得感谢的是,在windows上安装ImageMagick比安装attatchment_fu所需要的ImageScience容易多了

你有两个方法:

[*]使用Rmagick的gem包
尽管Paperclip不使用Rmagick的gem包,但如果要使用它,你可以从RubyForge下载它的最新版本,还有与其对应的ImageMagick(在下载包里看readme.html文件了解安装说明)
 

[*]下载最新版本的ImageMagick
If you’re not bothered about RMagick support then download and install the ImageMagick installer (I used the 16 bits per pixel dynamic library without any problems).
 
不管你采用那种安装方式,确保你在安装时选择“Updateexecutable search path”选项
 
3.Tempfile类的补丁
 

提示:在更深入的研究后,我不再100%地相信为了Paperclip给Tempfile打补丁有必要了。我建议你先试着在补丁的情况下使用它,当你遇到问题后再试着打上补丁(如果你能回帖告诉我你需要补丁,那真是太好了)
 
Paperclip通过Tempfile类广泛地利用了临时文件。不幸的是这在windows下导致一些奇怪的现象:文件大小不正确被视为0字节(attachment_fu也面临同样的问题)。解决方案就是这样给Tempfile打补丁:
 
require 'tempfile'class Tempfiledef size    if @tmpfile      @tmpfile.fsync      @tmpfile.flush      @tmpfile.stat.size    else      0    endendend 
这段代码来自 Emmanuel Pirsch的博客,在我的几个项目里,它已证明很有效。我通常把它放在我的lib/patches文件夹,并在initializer里require它。

4.停止,关闭,重开,重启
 
确保你关掉所有运行的服务器,关闭任何一个控制台窗口,然后重新打开并重启你需要的。让你的控制台跟服务器更新被安装程序改变后的Path环境变量是很重要的,这个改变发生在Paperclip通过命令行调用ImageMagick的时候(这就是我诶什么Paperclip不需要Rmagick的原因)

[*]
页: [1]
查看完整版本: Goodbye attachment_fu, hello Paperclip--准备工作