如何将CSV文件行中的数据导入rails中的多个表?
我正在尝试编写一种上传和导入CSV文件的方法,该文件包含需要使用smarter_csv gem转到现有数据库中不同表的数据。
答案 0 :(得分:0)
对于控制器中的所有内容来说,这可能不是一个好主意。您可能希望启动后台作业以在上载后处理文件。在后台作业中,您可以编写逻辑来解析CSV并写入多个表。
smarter_csv将使用CSV.parse函数将csv解析为哈希数组。
需要更多信息才能更好地回答您的问题。
答案 1 :(得分:0)
这个问题需要更具体地说明需要什么。但是,假设您需要的是上传和处理".csv"
文件的代码,您可以修改此代码段以满足您的需求
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Listing.create!( :price => row[0],
:status => row[1],
:beds => row[2],
:baths => row[3],
:category_attributes => {:unit_number => row[4]} )
end
end
该代码段假定您使用的是两个表格或模型 - Listings
和Categories
。而且你已经在这些模型上建立了适当的关系