2

我很高兴使用 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.new(params[:pic])

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

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

并防止生成缩略图。

4

2 回答 2

3

有趣的问题。

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

另一种选择是创建两个模型 - 一个称为 Pic,它不定义任何缩略图,然后一个称为 PicWithThumbs,它扩展了 Pic 类,并确实定义了缩略图。

然后在您的控制器中,您可以执行一个“if”语句,检查参数是否有一个名为“create_thumbs”(布尔值)的值 - 如果 :create_thumbs 为真,则创建 PicWithThumb 的一个实例,否则创建一个 Pic

我知道,它闻起来有点味道,而且我有点菜鸟,所以请随意将我击落。我有兴趣看看最好的解决方案是什么......

于 2010-01-07T10:26:38.070 回答
0

我不确定附件 fu,但是在回形针中,您可以通过返回 false in 来停止生成缩略图,在附件 fu 中,也许您可​​以在回调before_post_process中做类似的事情?process_attachment

于 2010-01-07T11:25:08.263 回答