Rails PaperClip附件,知道是否有图像缩略图?

时间:2011-01-26 04:49:34

标签: ruby-on-rails ruby-on-rails-3 paperclip

我正在使用Rails 3回形针,并允许用户将附件上传到附件模型。

如果文件是图片,则该应用会生成图片预览。如果文件不是,则仅上传文件(无图像预览)。

现在我想显示数据库中所有附件的列表。所以我使用attachment.attachment(:large),它适用于图像附件,但非图像附件的错误(显然)。

检查图片附件是否合适的好方法是什么?如果没有,我想显示一个标准的静态图像。有什么建议?感谢

4 个答案:

答案 0 :(得分:6)

这就是我在观点中所做的:

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

答案 1 :(得分:3)

检查attachment.attachment.attachment_content_type

例如,它可能是:“image / jpeg”

答案 2 :(得分:0)

也许您可以使用default_url选项?如果真实的缩略图不存在,则会显示。

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

答案 3 :(得分:0)

您可以创建一个迁移,将类型为string的attachment_content_type字段添加到附件表中。创建附件时,回形针会在该字段中存储文件的类型。然后,您可以检查文件类型是否类似于“image / jpeg”。