0

写真またはビデオのいずれかを受け入れるモデルがあります。問題なく動作しますが、検証に巻き込まれていると思います。

写真の場合、私はこれを持っています:

has_attached_file :content, styles: { thumb: '275x185#' }

これはうまく機能しますが、ビデオで何かを保存すると、次のようになります。

Validation failed: Content Paperclip::Errors::NotIdentifiedByImageMagickError, Content Paperclip::Errors::NotIdentifiedByImageMagickError

これは、ビデオのサイズを調整しようとしているためだと思います。画像のコンテンツのサム サイズのみを定義し、ビデオの場合は無視することはできますか? それとも、1 つの写真と 1 つのビデオの 2 つの異なるフィールドを作成し、DB に nil を含める必要がありますか?

4

1 に答える 1

1

styles条件付き処理を実行するためにラムダを与えることができます:

has_attached_file :content, styles: lambda do |a|
  if ['image/jpeg', 'image/jpg', 'image/gif', 'image/png'].include? a.instance.content_content_type
    { thumb: '275x185#'}
  end  
end

ただし、content画像であるかどうかを確認するためにここで使用される方法は、不正確である可能性があります。

于 2013-03-12T18:35:40.133 に答える