Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/04/2009, 11:57
pegasomx
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Cargar información con ruby

lamentablemente la funcion load es parte de la funcionalidad de mysql, es decir no es una funcion del ruby on rails, es simplemente un shell del cliente de mysql, por lo que no puedes pasar el archivo como deseas, tienes que grabarlo en alguna parte del servidor ya sea en public o en algun directorio de te preferencia

Ahora te recomiendo mejor que uses la clase CVS con la cual evitas el problema que tienes y ademas validas la info a traves del modelo

Código rails:
Ver original
  1. require 'csv'
  2.  
  3.    def csv_import
  4.      @parsed_file=CSV::Reader.parse(params[:dump][:file])
  5.      n=0
  6.      @parsed_file.each  do |row|
  7.      c=CustomerInformation.new
  8.      c.job_title=row[1]
  9.      c.first_name=row[2]
  10.      c.last_name=row[3]
  11.      if c.save
  12.         n=n+1
  13.         GC.start if n%50==0
  14.      end
  15.      flash.now[:message]="CSV Import Successful,  #{n} new records added to data base"
  16.    end


View:
Código rails:
Ver original
  1. <% form_for :dump, :url=>{:controller=>"customer_informations", :action=>"csv_import"}, :html => { :multipart => true } do |f| -%>
  2.  <table">
  3.    <tr>
  4.      <td>
  5.       <label for="dump_file">
  6.         Select a CSV File :
  7.       </label>
  8.      </td>
  9.      <td >
  10.        <%= f.file_field :file -%>
  11.      </td>
  12.    </tr>
  13.    <tr>
  14.      <td colspan='2'>
  15.        <%= submit_tag 'Submit' -%>
  16.      </td>
  17.    </tr>
  18.  </table>
  19. <% end -%>

Última edición por pegasomx; 22/04/2009 a las 12:14 Razón: Agrege funcion de importacion cvs