#ruby-on-rails-3 #carrierwave
#ruby-on-rails-3 #carrierwave
Вопрос:
Я хотел бы обрезать изображение до размера, выбранного пользователем из списка (например, 100x100px, 200x200px, …) Как мне передать этот атрибут загрузчику или получить атрибут модели из загрузчика?
Доступ к атрибуту модели из загрузчика следующим образом не работает:
version :thumb do
thumbnail_size = model.thumbnail_size
...
...
end
Я получаю следующую ошибку:
неопределенная локальная переменная или метод `model’ для #
Спасибо! Флориан
Ответ №1:
Чтобы иметь доступ к атрибуту модели, мне пришлось добавить помощника по манипулированию.
class MyUploader < CarrierWave::Uploader::Base
...
version :thumb do
process :custom_thumbnail
process :convert => 'jpg'
...
end
def custom_thumbnail
width = model.get_image_width
height = model.get_image_height
manipulate! do |img|
img.convert "#{width}x#{height}"
img
end
end
end