Solución:
Prueba esto:
require 'open-uri'
open('image.png', 'wb') do |file|
file << open('http://example.com/image.png').read
end
Una versión aún más corta:
require 'open-uri'
download = open('http://example.com/image.png')
IO.copy_stream(download, '~/image.png')
Para mantener el mismo nombre de archivo:
IO.copy_stream(download, "~/#{download.base_uri.to_s.split("https://foroayuda.es/")[-1]}")
Si está utilizando PaperClip, la descarga desde una URL ahora se gestiona automáticamente.
Suponiendo que tienes algo como:
class MyModel < ActiveRecord::Base
has_attached_file :image, ...
end
En su modelo, simplemente especifique la imagen como una URL, algo como esto (escrito a mano deliberadamente):
@my_model = MyModel.new
image_url = params[:image_url]
@my_model.image = URI.parse(image_url)
Probablemente querrá poner esto en un método en su modelo. Esto también funcionará bien en el sistema de archivos temporal de Heroku.
Paperclip lo llevará desde allí.
fuente: documentación del clip
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)