Мне нужно скопировать файл из одного объекта несущей волны в другой. Это разные таблицы и разные типы загрузчиков.
Я начал с:
user.avatar = image.content
(где пользователь и изображение являются экземплярами модели, аватар и контент - это загруженные пользователем несущие), которые работали иногда. Кажется, он работает все время локально, с файловым хранилищем, но прерывистым при использовании тумана и s3.
В сообщении почтовый список Я нашел этот код:
user.avatar = image.content.file
который снова работал иногда.
До сих пор мое рабочее решение:
require "open-uri"
begin
user.avatar = open(image.url)
rescue Errno::ENOENT => e
begin
user.avatar = open(image.path)
rescue Errno::ENOENT => e
# Ok, whatever.
end
end
который не только уродлив, но и не проходит проверку расширения, поскольку открытие удаленного файла не поддерживает расширение (jpg, png и т.д.).