开发者

Rails PaperClip Attachments, knowing if there's a image thumbnail?

开发者 https://www.devze.com 2023-02-07 05:49 出处:网络
I\'m using Rails 3 paperclip and allow users to upload attachments to the attachment model. If the file is an image, the app generates image previews. If the file is not, it only uploads the file (no

I'm using Rails 3 paperclip and allow users to upload attachments to the attachment model.

If the file is an image, the app generates image previews. If the file is not, it only uploads the file (no image previews).

Now I would like to disp开发者_运维知识库lay a list of all the attachments in the DB. So I use attachment.attachment(:large) and that works fine for image attachments, but errors (obviously) for non-image attachments.

What's a good way to check if it's an image attachment or not? If not, I'd like to display a standard static image. Any suggestions? thanks


This is what I did in my view:

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

This assumes that your model is attachment, and my file, I so called attachment.

So you could do something like:

<% if !(@attachment.attachment.content_type =~ /^image/).nil? %>
<%= image_tag @attachment.attachment.url(:small) %>
<%else%>
<%= image_tag "/path/to/image/default.png" %>
<%end%>


Check attachment.attachment.attachment_content_type

For example, it might be: "image/jpeg"


You can create a migration that adds a attachment_content_type field of type string to your attachment table. When you create an attachment, paperclip stores the type of the file in that field. You can then check if the file type is something like "image/jpeg".


Maybe you could use default_url option? That would be shown if the real thumbnail doesn't exist.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号