我的应用程序(仅用于本地)上有一个csv导入系统,它逐行解析csv文件并将数据添加到数据库表。这是基于教程here。Rails CSV导入,添加到相关表
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
这是所有在课程控制器和工作正常。 HABTM年和HABTM课程有一段关系。在csv文件中(有效地在行[5]到行[8]中)是year_id。有没有一种方法可以在上面的方法中添加。我很困惑如何循环4个项目并将它们添加到courses_years表中。
谢谢 杰克
非常好。非常感谢。你有什么想法在哪里我可以找到更多关于<<方法?这是很难找到使用谷歌... – Jack 2010-05-13 14:16:21
apidock.com是一个伟大的网站查找铁轨相关文件。您正在寻找我认为的ActiveRecord关联方法:http://apidock.com/rails/ActiveRecord/Associations/ClassMethods – jamuraa 2010-05-13 14:22:24
宾果。伟大的网站。最后一件事。当我使用第二个例子时,服务器似乎陷入循环。我错过了什么吗? – Jack 2010-05-13 14:24:36