【问题标题】:Rails PaperClip Attachments, knowing if there's a image thumbnail?Rails PaperClip 附件,知道是否有图像缩略图?
【发布时间】:2011-01-26 04:49:34
【问题描述】:

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

如果文件是图像,则应用会生成图像预览。如果文件不是,它只上传文件(没有图像预览)。

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

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

【问题讨论】:

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


    【解决方案1】:

    在我看来,这就是我所做的:

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

    【讨论】:

      【解决方案2】:

      查看attachment.attachment.attachment_content_type

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

          • 不幸的是,我认为这行不通。如果根本没有附件(即:模型中的附件属性设置为 nil)但没有为我检测到丢失的缩略图文件,它可以工作。 (FWIW 我在回形针 2.3.1 上)。如果有什么我可能做错了,我很想知道!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-28
          • 2011-07-04
          • 1970-01-01
          • 2011-11-19
          • 1970-01-01
          • 2019-03-11
          • 2014-01-29
          相关资源
          最近更新 更多