#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.