Я использую paperclip для загрузки и автоматического изменения размера фотографий в моем приложении Rails, и мне это нравится. Единственная проблема - каждый месяц мой сумасшедший менеджер решает, что он хочет, чтобы новый размер отображал фотографии. Поэтому я добавляю новый стиль в свою фотомодель, и все хорошо для новых фотографий, но уже существующие фотографии теперь являются проблемой, Теперь, когда я начинаю иметь больше, чем несколько фотографий для работы, мне нужен программный способ изменить размер существующих фотографий. Возможно, есть какой-то трюк для скрепки для такой вещи? Мне бы очень не хотелось разобраться с RMagick и написать script сам, если мне это не нужно.
Измените размер существующих изображений на новый стиль в paperclip & RMagick
Ответ 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, которая может быть проще.
Ответ 2
попробуйте эту задачу рейка, предоставленную paperclip
rake paperclip:refresh:missing_styles
Ref: https://github.com/thoughtbot/paperclip#post-processing