использование скрепки для получения списка пар стиль/геометрия, даже без действительного объекта

Я работаю над поддержкой старой кодовой базы и переношу attachment_fu в paperclip. Я перенес одну вещь, но теперь у меня небольшая проблема.

Существует партиал, который отображает изображения с учетом типа изображения и стиля эскиза. Я исправил часть для рендеринга изображения, и это нормально, но «остальное» предполагает, что на самом деле нет ни фотографии, ни изображения. В основном мне просто нужен полностью отдельный список пар style=> геометрии, которые не зависят от конкретного объекта, но я не могу сделать это, не делая таких вещей, как создание нового объекта и вытягивание оттуда строки, и даже это не сработало правильно. Есть ли способ вытащить его прямо из скрепки или прямо из модели? Старый метод использовал что-то вроде refelect_on_association, чего я даже не понимаю... Помогите пожалуйста. спасибо :)


person V_H    schedule 27.10.2009    source источник


Ответы (1)


Paperclip имеет понятие «default_url», если вы укажете это в своей модели, он попытается получить URL-адрес по умолчанию, если изображение еще не назначено этому объекту (ваш «другой» случай).

default_url принимает интерполяции :style, поэтому вы можете настроить пары стиль/геометрия в отдельной папке.

Шаг 1

Поместите изображения по умолчанию в каталог, например «/images/users/avatar/missing/».

Примеры имен файлов:

missing_thumb.png
missing_small.png

Шаг 2

Добавьте эту строку в объявление has_attached_file в вашей модели:

:default_url => "/images/:class/:attachment/missing/missing_:style.png"
person Mike Buckbee    schedule 27.10.2009
comment
Я не знаю, смогу ли я это сделать, если я использую s3? Это также кажется чрезмерным, поскольку код есть - все, что мне нужно сделать, это извлечь геометрию со стилем из модели данного типа изображения. - person V_H; 27.10.2009
comment
Вы определенно можете сделать это с помощью S3. Я также не уверен, насколько это избыточно: папка с несколькими изображениями и одной строкой кода. - person Mike Buckbee; 27.10.2009