7

私は以下を使用しています:

has_attached_file :file,:styles => { :thumbnail => '320x240!'},:url => "/images/:attachment/:id/:style/:basename.:extension",:path => ":rails_root/public/images/:attachment/:id/:style/:basename.:extension"

validates_attachment_content_type :file, :content_type => [ 'image/gif', 'image/png', 'image/x-png', 'image/jpeg', 'image/pjpeg', 'image/jpg' ]

画像と動画の両方をアップロードします。使用する:style =>{}と、画像がアップロードされません。:styleファイルのコンテンツタイプが画像の場合にのみメソッドを使用したい。

4

2 に答える 2

6

ラムダ内で条件を使用できます。見苦しい書式については申し訳ありません:

has_attached_file :file, :styles => lambda 
{ |a| 
      if a.instance.is_image?
        {:thumbnail => "320x240!"}
      end
}


def is_image?
    return false unless asset.content_type
    ['image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/x-png', 'image/jpg'].include?(asset.content_type)
end
于 2012-09-30T19:49:06.887 に答える