Измените размер существующих изображений на новый стиль в paperclip & RMagick

Я использую paperclip для загрузки и автоматического изменения размера фотографий в моем приложении Rails, и мне это нравится. Единственная проблема - каждый месяц мой сумасшедший менеджер решает, что он хочет, чтобы новый размер отображал фотографии. Поэтому я добавляю новый стиль в свою фотомодель, и все хорошо для новых фотографий, но уже существующие фотографии теперь являются проблемой, Теперь, когда я начинаю иметь больше, чем несколько фотографий для работы, мне нужен программный способ изменить размер существующих фотографий. Возможно, есть какой-то трюк для скрепки для такой вещи? Мне бы очень не хотелось разобраться с RMagick и написать script сам, если мне это не нужно.

Ответ 1

Вам нужен метод reprocess! для Paperclip:: Attachment. См. документы.

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end

# Console...
>> User.find_each { |u| u.avatar.reprocess! }

Кроме того, в соответствии с комментариями перед методом reprocess! существует справка paperclip: refresh Rake, которая может быть проще.