я хотел бы создать контроллер направляющих, которые загружают serie jpg файлов от сети и непосредственно пишут им в базу данных как двоичный файл (я не пытаюсь сделать форму загрузки),
Какая-либо подсказка о способе сделать это?
Спасибо
Редактирование: Вот некоторый код, который я уже написал драгоценному камню вложения-fu использования:
http = Net::HTTP.new('awebsite', 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.start() { |http|
req = Net::HTTP::Get.new("image.jpg")
req.basic_auth login, password
response = http.request(req)
attachment = Attachment.new(:uploaded_data => response.body)
attachement.save
}
И я получаю "неопределенный метод 'content_type' для #" ошибка
Используйте открытый URL-адрес (в стандартной библиотеке Ruby), чтобы захватить файлы, затем используйте драгоценный камень, например скрепку , чтобы сохранить их в базе данных в качестве вложений к вашим моделям.
ОБНОВЛЕНИЕ:
Attachment_fu не принимает необработанные байты, ему нужен «файловый» объект. Используйте этот пример LocalFile вместе с приведенным ниже кодом, чтобы выгрузить изображение во временный файл, а затем отправить его в вашу модель.
http = Net::HTTP.new('www.google.com')
http.start() { |http|
req = Net::HTTP::Get.new("/intl/en_ALL/images/srpr/logo1w.png")
response = http.request(req)
tempfile = Tempfile.new('logo1w.png')
File.open(tempfile.path,'w') do |f|
f.write response.body
end
attachment = Attachment.new(:uploaded_data => LocalFile.new(tempfile.path))
attachement.save
}