J'ai une page où un utilisateur peut importer des données sur le site. soit sous la forme d'une copie et d'un collage dans une zone de texte à partir d'Excel, soit en téléchargeant un fichier .csv.Erreur avec Paperclip/FasterCSV Traitement pour le téléchargement csv optionnel
Le contrôleur vérifie si un csv a été téléchargé - si c'est le cas, il traite le contenu collé. (en supposant que l'utilisateur choisira seulement une option pour l'instant).
La partie copier-coller fonctionne parfaitement, cependant, le problème se pose lorsque je tente de traiter le fichier csv téléchargé:
Je reçois l'erreur:
can't convert ActionController::UploadedTempfile into String
#events_controller
def invite_save
@event = Event.find(params[:id])
if params[:guest_list_csv]
lines = parse_csv_file(params[:guest_list_csv])
else
#csv file uploaded
lines = params[:guest_list_paste]
end
if lines.size > 0
lines.each do |line|
new_user(line.split)
end
flash[:notice] = "List processing was successful."
else
flash[:error] = "List data processing failed."
end
end
private
def parse_csv_file(path_to_csv)
lines = []
require 'fastercsv'
FasterCSV.foreach(path_to_csv) do |row|
lines << row
end
lines
end
def new_user(line)
#code to create new user would go here
end
Je suis essentiellement en essayant de télécharger et de traiter le CSV en une seule action, plutôt que d'avoir à pousser l'utilisateur à appuyer sur un bouton "traiter".
Pouvez-vous également afficher les fichiers de vue et de modèle? –