2011-01-26 90 views
5

我正在使用Rails 3回形針,並允許用戶將附件上傳到附件模型。Rails PaperClip Attachments,知道是否有圖像縮略圖?

如果該文件是圖像,應用程序會生成圖像預覽。如果文件不是,它只會上傳文件(無圖像預覽)。

現在我想顯示數據庫中所有附件的列表。所以我使用attachment.attachment(:large)並且對圖像附件工作正常,但對於非圖像附件錯誤(顯然)。

什麼是檢查它是否是圖像附件的好方法?如果沒有,我想顯示一個標準的靜態圖像。有什麼建議麼?謝謝

回答

0

也許你可以使用default_url選項?如果真實的縮略圖不存在,將會顯示。

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

+0

不幸的是,我不認爲這個工程。它可以工作,如果根本沒有附件(即:模型中的附件屬性設置爲零),但沒有爲我檢測到丟失的縮略圖文件。 (FWIW我在paperclip 2.3.1上)。如果有什麼我可能做錯了,我很想知道它! – 2011-02-03 23:07:13

0

您可以創建一個遷移,增加了一個字符串類型的attachment_content_type領域的附件表。當您創建附件時,回形針將文件的類型存儲在該字段中。然後您可以檢查文件類型是否類似於「image/jpeg」。

3

檢查attachment.attachment.attachment_content_type

例如,它可能是: 「圖像/ JPEG」

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