Attachment_fu:我如何有选择地阻止缩略图创建?

时间:2010-01-07 09:07:49

标签: ruby-on-rails ruby-on-rails-plugins attachment-fu

我很高兴使用attachment_fu来处理文件上传和缩略图创建。但是,对于某些(但不是全部!)情况,我想抑制缩略图的创建。

我如何破解attachment_fu来做到这一点?

细节:我有一个传统的attachment_fu模型

class Pic < ActiveRecord::Base
  has_attachment :content_type => :image, :storage => :s3, :resize_to => '200x600>',
                 :thumbnails => { :thumb48 => [48,48], 
                                  :thumb32 => [32,32], 
                                  :thumb22 => [22,22] }
  validates_as_attachment
end

用户使用文件输入指定要在表单中上载的文件,并将表单提交到使用

创建pic的操作
@pic = Pic.new(params[:pic])

在某些情况下,我希望能够做类似

的事情
@pic = Pic.new(params[:pic], {:generate_thumbnails => false})

并防止生成缩略图。

2 个答案:

答案 0 :(得分:3)

有趣的问题。

您是否考虑过不显示某些照片的缩略图?或存储是一个问题?

另一种选择是创建两个模型 - 一个叫做Pic,它没有定义任何缩略图,另一个叫做PicWithThumbs,它扩展了Pic类,并且确定了缩略图。

然后在你的控制器中,你可以做一个'if'语句,检查params是否有一个名为'create_thumbs'的值(boolean) - if:create_thumbs为true,然后创建一个PicWithThumb实例,否则创建一个Pic

我知道,它闻起来有点味道,而且我有点像菜鸟,所以请随意把我击倒。我很想知道最好的解决方案是什么......

答案 1 :(得分:0)

我不确定附件fu,但是在paperclip中你可以通过在before_post_process中返回false来停止缩略图生成,在附件中你也许可以在{{1}中做类似的事情回调?