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

淺唱寂寞╮ 提交于 2019-12-23 12:30:46

问题


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 display 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


回答1:


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%>



回答2:


Check attachment.attachment.attachment_content_type

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




回答3:


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".




回答4:


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



来源:https://stackoverflow.com/questions/4801482/rails-paperclip-attachments-knowing-if-theres-a-image-thumbnail

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!