Rails - Daten können nicht aus CSV-Datei importiert werden

Ich versuche, Daten aus einer CSV-Datei zu importieren. Ich möchte die Datei nicht speichern. Ich habe hier eine ähnliche Frage gefunden:Ruby on Rails - Daten aus einer CSV-Datei importieren

eim Versuch, diese Lösung zu verwenden, wird jedoch eine Fehlermeldung angezeig

Mein Formular lautet wie folgt:

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 %>

Auf der neuen Seite ruft die Übermittlung dieses Formulars die Aktion create auf, die Aktion create ruft dann die Zeile auf:

Product.import(params[:file])

Ich habe die folgende Importmethode in meinem Modell:

def self.import(myfile)
    require 'csv'    

    csv_text = File.read(myfile)
    csv = CSV.parse(csv_text, :headers => true)
    csv.each do |row|

    end
end

wo 'myfile' ist params [: file].

Mir ist bewusst, dass ich mit den Daten noch nichts mache. Ich erhalte eine Fehlermeldung mit der Zeilecsv_text = File.read(myfile) welches ist: Keine solche Datei oder Verzeichnis @ rb_sysopen - X.csv

Bei der Suche nach einer Lösung, die ich gesehen habe, wird .path verwendet. Wenn ich diese Zeile in @ ändecsv_text = File.read(myfile.path) Ich erhalte den Fehler: undefinierte Methode `path 'für" X.csv ": String

Kann jemand helfen? Ich habe das Gefühl, dass ich einer Lösung sehr nahe sein muss, aber ich gehe immer wieder zwischen diesen beiden Fehlern hin und her. Ist es möglich, die Daten von der CSV zu erhalten, ohne sie vorher zu speichern?

Vielen Dank für Ihre Zei

Antworten auf die Frage(4)

Ihre Antwort auf die Frage