2014-11-20 3 views
0

Попытка установить максимальную ширину до 1280, когда над 600Kb, а не .gif:Rails Paperclip не понимает те же параметры, как конвертировано ImageMagick

has_attached_file :main_image, 
    :styles => {:original => "" }, 
    :convert_options => { 
    :original => lambda { |instance| (instance.main_image_file_name.index(/\.gif/,-4).nil? && instance.main_image.size > 600000) ? "-resize 1280>" : "" } 
    }, 
    :path => ":rails_root/public/system/:class/:attachment/:id_:basename.:extension", 
    :url => "/system/:class/:attachment/:id_:basename.:extension" 

Getting это в моих журналах:

Command :: convert '/var/folders/hn/2q5wpxh52nn_3nk9wwskr48w0000gn/T/5827912cb359afd550a72bf4f54b109020141119-76993-1i6nij6.png[0]' -auto-orient -resize 1280> '/var/folders/hn/2q5wpxh52nn_3nk9wwskr48w0000gn/T/5827912cb359afd550a72bf4f54b109020141119-76993-1i6nij620141119-76993-q0m833' 
sh: 1280: Bad file descriptor 
[paperclip] An error was received while processing: #<Paperclip::Error: There was an error processing the thumbnail for 5827912cb359afd550a72bf4f54b109020141119-76993-1i6nij6> 

ответ

0

Два вопроса здесь:

  1. Скрепка ж/Rails часто требуют, чтобы добавить \\ перед < или > символов, как в 1280x\\>
  2. Кроме того, Paperclip всегда нуждается в этих x, даже когда просто делает ширину (, а не 1280\\>).

Вот мое полное решение для установки максимальной ширины до 1280, когда над 600Kb, а не .gif:

has_attached_file :main_image, 
    :styles => {:original => "" }, 
    :convert_options => { 
    :original => lambda { |instance| (instance.main_image_file_name.index(/\.gif/,-4).nil? && instance.main_image.size > 600000) ? "-resize 1280x\\>" : "" } 
    }, 
    :path => ":rails_root/public/system/:class/:attachment/:id_:basename.:extension", 
    :url => "/system/:class/:attachment/:id_:basename.:extension" 
Смежные вопросы