Rails PaperClip Attachments, зная, есть ли уменьшенное изображение? - PullRequest
5 голосов
/ 26 января 2011

Я использую скрепку Rails 3 и позволяю пользователям загружать вложения в модель вложения.

Если файл является изображением, приложение создает предварительный просмотр изображения. Если файла нет, он загружает только файл (без предварительного просмотра изображения).

Теперь я хотел бы отобразить список всех вложений в БД. Поэтому я использую attachment.attachment (: large), и это прекрасно работает для вложений изображений, но ошибки (очевидно) для вложений без изображений.

Какой хороший способ проверить, является ли это вложением изображения или нет? Если нет, я бы хотел отобразить стандартное статическое изображение. Какие-либо предложения? спасибо

Ответы [ 4 ]

6 голосов
/ 22 июля 2011

Это то, что я сделал на мой взгляд:

<% if !(@attachment.attachment.content_type =~ /^image/).nil? %>
<%= image_tag @attachment.attachment.url(:small) %>
<%end%>

Это предполагает, что ваша модель является вложением, а мой файл, я так называемым вложением.:

<% if !(@attachment.attachment.content_type =~ /^image/).nil? %>
<%= image_tag @attachment.attachment.url(:small) %>
<%else%>
<%= image_tag "/path/to/image/default.png" %>
<%end%>
3 голосов
/ 26 января 2011

Чек attachment.attachment.attachment_content_type

Например, это может быть: "image / jpeg"

0 голосов
/ 26 января 2011

Вы можете создать миграцию, которая добавляет поле attachment_content_type типа type в вашу таблицу вложений.При создании вложения paperclip сохраняет тип файла в этом поле.Затем вы можете проверить, является ли тип файла чем-то вроде «image / jpeg».

0 голосов
/ 26 января 2011

Может быть, вы могли бы использовать default_url вариант? Это будет показано, если реальный эскиз не существует.

http://www.suffix.be/blog/default-image-paperclp

...