Рельсы Скрепка, СУХАЯ конфигурация - PullRequest
3 голосов
/ 24 января 2011

Чтобы высушить мой код для изображений вложений, я создал инициализатор для переопределения переменной @default_options, используемой Paperclip.

Таким образом, мне не нужно снова и снова указывать URL, путь и хранилище, которые я хочу.

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

Есть идеи?

РЕДАКТИРОВАТЬ 1: Я хочу, по крайней мере, проверить наличие и размер.

РЕДАКТИРОВАТЬ 2: Часть моего текущего кода

module Paperclip
 class Attachment
   def self.default_options
     if Rails.env != "production"
       @default_options = {
         :url => "/assets/:class/:attachment/:id/:style/:normalized_name",
         :path => ":rails_root/public/assets/:class/:attachment/:id/:style/:normalized_name",
         :default_style => :original,
         :storage       => :filesystem,
         :whiny         => Paperclip.options[:whiny] || Paperclip.options[:whiny_thumbnails]
         }
      else
       ...
      end
   end
 end

normalized_name - внешняя функция, feat: http://blog.wyeworks.com/2009/7/13/paperclip-file-rename

РЕДАКТИРОВАТЬ 3:

Этот блог: http://omgsean.com/2009/02/overriding-paperclip-defaults-for-your-entire-rails-app/ представляет хеш default_options с помощью клавиши validations.

Так что это возможно, но пока не найдено.

1 Ответ

1 голос
/ 24 января 2011

Вы не сможете переместить проверки в хэш default_options (так как эти проверки выполняются вне класса вложения (внутри модуля скрепки). Я думаю, что если у вас одинаковые проверки во всех ваших моделях,вам может понадобиться использовать наследование для уменьшения дублирования кода. Я бы посоветовал не переносить проверки в инициализатор.

...