首页 文章

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

提问于
浏览
5

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

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

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

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

4 回答

  • 3

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

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

    检查 attachment.attachment.attachment_content_type

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

  • 0

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

  • 6

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

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

相关问题