Attachment_fu: как я могу выборочно предотвратить создание миниатюр? - PullRequest
2 голосов
/ 07 января 2010

Я с удовольствием использую 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})

и предотвращение создания миниатюр.

Ответы [ 2 ]

3 голосов
/ 07 января 2010

интересный вопрос.

Вы думали о том, чтобы просто не показывать миниатюры для определенных фотографий? или проблема хранения?

другим вариантом будет создание двух моделей - одна с именем Pic, которая не определяет миниатюры, а затем другая с именем PicWithThumbs, которая расширяет класс Pic и определяет миниатюры.

Тогда в вашем контроллере вы можете сделать оператор if, который проверит параметры для значения с именем 'create_thumbs' (логическое значение) - если: create_thumbs true, то создать экземпляр PicWithThumb, иначе создать Pic

Я знаю, он немного пахнет, и я немного нуб, так что не стесняйтесь меня подстрелить. Мне интересно посмотреть, какое из них лучшее решение ...

0 голосов
/ 07 января 2010

Я не уверен насчет вложения fu, но в paperclip вы можете остановить генерацию миниатюр, вернув false в before_post_process, во вложении fu возможно вы могли бы сделать то же самое в обратном вызове process_attachment

...