Rails3的Attachment_fu或Paperclip

DJ *_*rth 12 attachment-fu paperclip ruby-on-rails-3

我刚刚升级到rails3,当我安装我常用的attachment_fu插件失败时.所以我开始谷歌搜索它,虽然我确实设法找到一个rails3版本,似乎有更多的人在谈论带有rails3的回形针.

首先,回形针有哪些优点?

有没有更好的支持rails3吗?

bow*_*ior 12

都不是.使用carrierwave.

为了处理文件上传,我已经从Paperclip切换到了CarrierWave.虽然Paperclip已经(并且继续)在我合作的许多应用程序中很好地为我服务,但我非常欣赏CarrierWave采用的模块化方法.它与您使用哪种流行的S3客户端无关,支持aws/s3和right_aws.它也是ORM不可知的,并没有与Active Record紧密耦合.Paperclip的紧密耦合使我们在工作中感到悲伤,而且我也对Paperclip对aws/s3和right_aws的支持状态感到困惑.所以,我很高兴找到这个新项目,维护者乔纳斯尼克拉斯似乎是一个非常敏感和乐于助人的家伙,这总是好事.代码看起来很棒,到目前为止我已经很容易使用这个库了.(来自:http://trevorturk.com/2010/2/8/kzak-an-open-source-web-based-jukebox/)

更多信息:


kit*_*ter 7

我使attachment_fu rails3兼容.

请参阅https://github.com/mihael/attachment_fu

编辑:但它已被一些用户破坏,我不进一步维护它,所以请查看其他解决方案,如果你不想自己破解它;)

对于我正在研究的项目,我使用rails3.0.3测试了paperclip vs carrierwave vs attachment_fu.

到目前为止,attachment_fu一如既往地工作得很好,但代码仍然需要对回调系统进行一些重构.它有后端用于cloudfiles,s3.

回形针也很好用,非常容易使用.基本设置不允许我上传电影(必须添加选项:whiny => false),它没有像我预期的那样清理文件名.我就这样做了:

class Asset < ActiveRecord::Base
  has_attached_file :file, :styles => { :small => "300x300>", :thumb => "50x50>" }, :whiny => false
  before_create :sanitize_file_name
  private
  def sanitize_file_name
    self.file.instance_write( :file_name,  file_file_name.gsub(/[^A-Za-z0-9\.\-]/, '_'))
  end  
end
Run Code Online (Sandbox Code Playgroud)

Paperclip有s3后端,但没有内置cloudfiles的后端.有一个回形针(google for paperclip-cloudfiles),它是为rails2.3.5(为paperclip_demo搜索github)而构建的.

Carrierwave看起来很漂亮,具有解耦的体系结构,但我不喜欢它不删除更新和破坏对象的东西,在磁盘上留下一堆文件和目录.基本的载波设置也没有让我上传电影,虽然它很好地消毒了文件名.我还没有找到快速解决方案.如果您使用的是Mongoid和GridFS,则carrierwave内置了支持.

最后,我把Paperclip用于我的项目.