Файл изменения скрепки Rails

#ruby-on-rails-3 #image #file #path #paperclip

#ruby-on-rails-3 #изображение #файл #путь #скрепка

Вопрос:

Я использовал rmagick в Rails для преобразования загружаемых изображений из одного типа файлов в JPEG. Теперь я могу вызвать его из нового изображения; Я сделал:

 image = Magick::ImageList.new 'public/system/photos/'   @picture.id.to_s  
                              '/original/'   @picture.photo_file_name

image.write 'public/system/photos/'   @picture.id.to_s   '/original/'   
            @picture.photo_file_name.sub(/.w*/, '.jpg')

@picture.photo_file_name = @picture.photo_file_name.sub /.w*/,'.jpg'
  

Теперь я создал два файла, как следует удалить исходный файл или перезаписать исходный файл, а не создавать новый, как я сейчас?

Комментарии:

1. если вы уже используете Paperclip, почему бы просто не позволить Paperclip выполнить преобразование за вас.

2. @Jordan я вроде как забыл об этой проблеме до сих пор, как так?

Ответ №1:

Re: обсуждение в комментариях, вот пример из документов Paperclip:

 class User < ActiveRecord::Base
  has_attached_file :photo,
                    :styles => {
                      :small => {
                        :geometry => '38x38#',
                        :quality => 40,
                        :format => 'JPG'
                      },
                      :medium => {
                        :geometry => '92x92#',
                        :quality => 50
                      }
end
  

Обратите :format => 'JPG' внимание на строку «». Как вы можете видеть, тривиально указать Paperclip конвертировать файл в формат JPEG, пока он выполняет остальные операции, поэтому, если вы уже используете Paperclip, вам не нужно выполнять отдельный этап преобразования напрямую с помощью rmagick.