Rails: no se pueden importar datos del archivo CSV
Estoy tratando de importar datos de un archivo CSV, no quiero guardar el archivo. He encontrado una pregunta similar aquí:Ruby on Rails - Importar datos desde un archivo CSV
Sin embargo, cuando intento usar esta solución me sale un error.
Mi formulario es el siguiente:
Import a CSV file
<%= file_field_tag :file %>
<div class="actions form-group" id="button_text">
<p>
<%= button_tag(type: 'submit', class: "btn btn-primary button-submit") do %>
Submit
<% end %>
En la nueva página, el envío de este formulario llama a la acción crear, la acción crear llama a la línea:
Product.import(params[:file])
Tengo el siguiente método de importación en mi modelo:
def self.import(myfile)
require 'csv'
csv_text = File.read(myfile)
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
end
end
donde 'myfile' es params [: file].
Soy consciente de que todavía no estoy haciendo nada con los datos. Recibo un error con la línea.csv_text = File.read(myfile)
que es: No existe tal archivo o directorio @ rb_sysopen - X.csv
Al buscar una solución, he visto que se usa .path. Si cambio esta línea acsv_text = File.read(myfile.path)
Me sale el error: método indefinido 'ruta' para "X.csv": cadena
¿Alguien puede ayudar? Siento que debo estar muy cerca de una solución, pero sigo dando vueltas y vueltas entre estos dos errores. ¿Es posible obtener los datos del csv sin guardarlos primero?
Gracias por tu tiempo