J'ai un système d'importation csv sur mon application (utilisé localement seulement) qui analyse le fichier csv ligne par ligne et ajoute les données à la table de la base de données. Ceci est basé sur un tutoriel here.Rails Importation CSV, ajout à une table associée
require 'csv'
def csv_import
@parsed_file=CSV::Reader.parse(params[:dump][:file])
n = 0
@parsed_file.each_with_index do |row, i|
next if i == 0 #ignore the first row
course = Course.new
course.title = row[0]
course.unit_code = row[1]
course.course_type = row[2]
course.value = row[3]
course.pass_mark = row[4]
if course.save
n = n+1
GC.start if n%50==0
end
flash.now[:message] = "CSV Import Successful, #{n} new courses added to the database."
end
redirect_to(courses_url)
end
Ceci est tout dans le contrôleur de cours et fonctionne très bien. Il y a une relation qui cours HABTM ans et années cours HABTM. Dans le fichier csv (effectivement dans la rangée [5] à la rangée [8]) sont les year_id s. Y at-il un moyen que je peux ajouter ceci dans la méthode ci-dessus. Je suis confus quant à la façon de faire une boucle sur les 4 éléments et de les ajouter à la table courses_years.
Merci Jack
Excellent. Merci beaucoup. Avez-vous une idée d'où je peux en savoir plus sur la méthode < Il est assez difficile de trouver en utilisant google ... – Jack
apidock.com est un excellent site pour la recherche de documentation relative aux rails. Vous cherchez des méthodes d'association ActiveRecord je pense: http://apidock.com/rails/ActiveRecord/Associations/ClassMethods – jamuraa
Bingo. Super site. Une dernière chose.Lorsque j'utilise votre deuxième exemple, le serveur semble être coincé dans une boucle. Est-ce que je manque quelque chose? – Jack