2011-03-13 29 views
11

Birden biçimleri için tek bir dosya alanını kullanmak istiyorum. Paperclip'in sadece görüntüleri ölçeklemek ve diğer formatları tek başına bırakmak için yeterince akıllı olduğu benim anlayışımdı, fakat bu, flv'ler için işe yaramaz (imagemagick/identify-errors'ı döndürür). Paperclip'e biraz yardımcı olacak ve ölçeklendirmek için belirli formatları açıkça kurmanın bir yolu var mı?Paperclip süreç görüntüleri sadece

GÜNCELLEME: Görünüşe göre, bu hatalar ile engellenir: mızmız => false (teşekkürler fl00r), düzenli yüklemeler için çalışıyor. Ancak, ne ben burada yapmaya çalışıyorum FTP ile dosya yükleyerek, ve daha sonra bir File.new ile kod tarafından yeni bir kayıt oluşturmak ([: yol]) eki-parametresinde. Bu, görüntüler için bir cazibe gibi çalışır, ancak: whiny => false-trick artık yapmayacaktır. Bunun hakkında herhangi bir ipucu var mı?

cevap

13

false :whiny seçeneğini ayarlayın:

has_attached_file :my_attach, :whiny => false ... 

o görüntüleri işlemek için peparclip yardımcı olmaz, ancak işleme

UPD

İşleme başarısızlığa uğrarsa hataları atmaz

has_attached_file :file, 
    :styles => lambda{ |a| ["image/jpeg", "image/png"].include?(a.content_type) ? { :small => "90x90#" } : {} } 
: sadece görüntüler için

["image/jpeg", "image/png"] dizilimi

+0

de daha fazla ayrıntı için

before_post_process :process_only_images def process_only_images %w(image/jpeg, image/png,image/gif,image/pjpeg, image/x-png).include?(attachment_content_type) end 

Kontrol ataç belgelerine çok yardımcı görünüyor, teşekkürler! – Jpunt

+0

bazı güncellemeler burada – fl00r

+0

Evet, bu çok çalışmalısınız, çok teşekkürler! – Jpunt

3

İstediğiniz içerik türlerini istediğiniz kadar ekleyebilirsiniz. Görüntülerin sonradan işlenmesi için ataç geriçağırımını kullanabilir ve ataçmayı yalnızca görüntüleri işlemek için yönlendirebilirsiniz. before_post_process geri araması yanlış döndürürse, işlem durur. https://github.com/thoughtbot/paperclip#events

+0

Bu yaklaşımı beğendim ancak kod tam olarak doğru değil: % w (görüntü/jpeg resmi/png, resim/gif resmi/pjpeg resmi/x-png) .include? (Attachment_content_type) –

+2

dikkatli olmalısınız Bu,% w kullanarak bir dizi bildirme şekliniz değil. (Görüntü/JPEG resim/PNG resmi/GIF resim/pjpeg görüntü/x-PNG) .include? (Resource_content_type) 'w yerine bu'% kullanımı – fenec