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/)
更多信息:
我使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用于我的项目.