undefined method 'read' in importing CSV file

Rails 3.1.3

I am trying to import CSV file and upload database accordingly.

the view is the following.

      <%= form_tag( { :action => "import_csvdata"},         :html => { :multipart => true }) do |f| %>         <label for="file">             Select a CSV File :         </label>         <%= file_field_tag :file %>         <%= submit_tag 'Submit', :class => 'btn btn-large btn-success' %>               <% end %>

the controller is,

  def import_csvdata     if request.post? && params[:file].present?       infile = params[:file].read ####<===HERE!!!!!       n, errs = 0,

      CSV.parse(infile) do |row|         n += 1         # SKIP: header i.e. first row OR blank row         next if n == 1 or row.join.blank?         @departure = Departure.find_or_create_by_city(row[2])         @destination = Destination.find_or_create_by_city(row[3])         @airline = Airline.find_or_create_by_company(row[0])

        @flight_name = FlightName.new(:name => row[1],                                       :airline_id => @airline.id,                                       :departure_id => @departure.id,                                       :destination_id => @destination.id)         @flight_name.save

      end     end     redirect_to airlines_url   end

raises an error undefined method `read' for "first_test.csv":String

Do I need to 'open' the file? But I searched the web, and it doesn't seem like it.

Could anyone suggest a solution to this problem?