2011-01-26 8 views
5

私はRails 3 paperclipを使用しており、ユーザーは添付ファイルを添付ファイルにアップロードできます。Rails PaperClip添付ファイルは、画像サムネイルがあるかどうかを知っていますか?

ファイルが画像の場合、画像プレビューが生成されます。ファイルがない場合は、ファイルをアップロードするだけです(画像のプレビューはありません)。

これで、すべての添付ファイルのリストをDBに表示したいと考えています。ですから、私はattachment.attachment(:large)を使用し、それはイメージの添付ファイルでは正常に動作しますが、イメージ以外の添付ファイルではエラー(明らかに)が問題になります。

画像の添付ファイルかどうかを確認するにはどうすればよいですか?そうでない場合、私は標準的な静止画像を表示したいと思います。助言がありますか?ありがとう

答えて

0

多分default_urlオプションを使用できますか?実際のサムネイルが存在しない場合は、これが表示されます。

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

+0

。添付ファイルがまったくない(つまり、モデルの添付プロパティがnilに設定されていても)、サムネイルファイルが見つからない場合に機能します。 (私はペーパークリップ2.3.1にあるFWIWです)。おそらく私が間違っていることがあれば、それについて知りたいです! –

0

あなたの添付ファイルテーブルに文字列型のattachment_content_typeフィールドを追加し、移行を作成することができます。添付ファイルを作成すると、paperclipはファイルのタイプをそのフィールドに格納します。ファイルタイプが "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%> 
関連する問題