В моей модели, имеющей has_attached_file, у меня есть следующий код:
before_post_process :jpeg_optim_compression
...
def jpeg_optim_compression
path = attachment.queued_for_write[:original].path
Paperclip.run("jpegoptim", "-o --strip-all #{path}")
end
И локально работает нормально, выдавая следующий вывод:
[paperclip] jpegoptim -o --strip-all temporary_path_to_attachment 2>/dev/null
Но при развертывании на промежуточном сервере возникает ошибка:
[paperclip] jpegoptim '-o --strip-all temporary_path_to_attachment' 2>/dev/null
Paperclip::PaperclipCommandLineError (Error while running jpegoptim. Expected return code to be 0 but was 3):
Мне потребовалось некоторое время, чтобы понять, что эти цитаты были причиной (я предположил, что некоторые проблемы с доступом к файлам и другие). После изменения на
Paperclip.run("jpegoptim -o --strip-all #{path}")
OR
Paperclip.run("jpegoptim -o --strip-all", "#{path}")
это работает. У кого-нибудь есть идея, почему это так?
Спасибо за любые предложения!