Я новичок в рельсах и застрял в проблеме, которую я думал, будет довольно прямо Я хотел бы загрузить изображение, изменить его размер и отобразить изображение с измененным размером. Я могу загрузить с помощью carrierwave, но при попытке изменить его размер и отобразить с помощью mini_magick все идет не так! На основе документов mini_magick я создал в своем классе метод для изменения размера изображения следующим образом:
class Item < ApplicationRecord
require "mini_magick"
mount_uploader :filename, ImageUploader
def resize_to_dev
output_file_name = "public/uploads/item/filename/" + "#{self.id}" + "/" + "#{self.id}" + ".jpg"
image = MiniMagick::Image.open(self.filename.current_path)
image.resize "100x100"
image.format "jpg"
image.write output_file_name
end
end
Это изменяет размер изображения и переименовывает его в itemid.jpg. Но если я пытаюсь отобразить его, используя этот код в моем шаблоне шоу.
<p><% @item.resize_to_dev %>
<p><% output_file_dir = "public/uploads/item/filename/" + "#{@item.id}" + "/" + "#{@item.id}" + ".jpg"%>
<p><%= image_tag(output_file_dir, alt: 'Image')%>
Я получаю ошибку;
'Актив' public / uploads / item / filename / 2 / 2.jpg "отсутствует в конвейере ресурсов. '
, даже если файл находится в этом месте.
Для этого должен быть более простой способ! Любая помощь очень ценится.