file upload error(can't convert Tempfile into String)

i tried a method to implementa file uploader by using amethod below

this is ma controlller method to upload

def save_imports
    Contactslist.save(params[:list])
    render :text => "File uploaded successfully"

this is ma view file

.remote
  - form_for(@list, :url=> save_imports_list_path(@list, :format =>
"js"), :html => { :multipart => true, :target => "uploading", :onsubmit
=> "$('list_submit).disabled = true" }) do |f|
    = link_to_close edit_list_path(@list)
    .section
      %small
        #{t :add_contacts_from_file}
      %table{ :width => 500, :cellpadding => 0, :cellspacing => 0 }
        %tr
          %td{ :valign => :top }
          .label.top.req #{t :upload_new}:
          =f.file_field :uploads, :style => "width:240px"

    .buttonbar
      = f.submit "#{t:save_contacts}", :onclick => "this.disabled =
true"
      #{t :or}
      = link_to_cancel edit_list_path(@list)

i created amodel contact list and nclude amethod as given below

class Contactslist < ActiveRecord::Base
def self.save(upload)
    name = upload['uploads']
    puts name
    directory = "public/avatars"
    # create the file path
    path = File.join(directory, name)
    # write the file
    File.open(path, "wb") { |f| f.write(upload['uploads'].read) }
  end
end
when i tried to upload a file its showing errors as

TypeError in ListsController#save_imports

can't convert Tempfile into String

can anyone help.is there any fault in this method?actually i wanted
toupload this files into a table callled contactslists or to move to
a folder in my application pls provide help

Hey Tony,

You just need

name = upload[‘uploads’].original_filename

instead of

name = upload[‘uploads’]

/Lasse

Lasse Bunk wrote:

Hey Tony,

You just need

  name = upload['uploads'].original_filename

instead of

  name = upload['uploads']

/Lasse

thanks a lot its working now