Я бы предложил использовать RMagick, который представляет собой рубиновую оболочку для imagemagick. Это поможет сделать вещи более похожими на рубин, и, как правило, полезно знать.
Google поможет (или stackoverflow для RMagick), но шаги примерно такие (я предполагаю Rails 3):
в application.config:
gem 'rmagick'
Затем в вашем контроллере:
require 'RMagick'
def create
@upload_io = params[:image_field]
@filename = @upload_io.original_filename
@filepath = Rails.root.join('public', 'images', @filename)
File.open(@filepath) do |file|
file.write(image_io.read)
end
@original = Magick::Image.read(@filepath)
@thumbnail = @original.resize_to_fit 75 75
@thumbnail.write(Rails.root.join('public', 'images', 'sm_' + filename)
end
Если вы не очень заинтересованы в RMagick, я бы также рекомендовал убедиться, что вы сохраняете свой файл перед изменением его размера (существует ли оригинал?), И убедиться, что ваши пути совпадают и что вы на самом деле попадание в нужное место в файловой системе.