batch uploading data and using file_column

I think the best way is to handle such cases manually and not alter the
file_column. Something like that:

require 'open-uri'

uri = "http://somewhere.example.com/myimage.gif"

open(uri) do |remote|
  uploadedfile = StringIO.new(remote.read)
end

filename = File.basename(uri)
(class << uploadedfile; self; end).class_eval do
  define_method(:local_path) { "" }
  define_method(:original_filename) { filename }
  define_method(:content_type) { "application/octet-stream" }
end

Then assign this uploadedfile to file_column attribute.

Clare wrote:

Thank you very much for replying but sadly I'm not yet good enough to
understand your fancy code.

Sorry i usually have a better crack at solving issues but I don't
understand what is going on in the section that begins (class <<
uploadedfile; self; end).class_eval. If you get time to reply that would
be excellent, if not thanks for giving me something to investigate
further.

"class << uploadedfile; self; end" is a common technique to get
singleton class for that very instance to be able to extend it. I think
it could be done in a more simple way, I just took a code from
file_column's test method that simulate an uploaded file.
In Rails, uploaded file is an IO object or the like (which has "read"
method) extended with some instance methods (local_path,
original_filename, content_type).

Regarding your error, I think you haven't required 'open-uri' library
and this line
     uploadedfile = StringIO.new(remote.read)
haven't got executed. That's probably why you've got "undefined
variable" error. I suggest you to put all the code inside open(uri)
block so you'll ensure that nothing will happen if it is unable to open
that uri.