如何将数据从CSV文件行导入到Rails中的多个表中?我正在尝试编写一个方法,用于上传和导入CSV文件,该文件包含需要使用smarter_csv gem转到现有数据库中不同表的数据。
u4vypkhs1#
这可能不是一个好主意,一切都在一个控制器。您可能需要启动一个后台作业,以便在上传后处理您的文件。在后台作业中,您可以编写逻辑来解析CSV并写入多个表。smarter_csv将使用CSV.parse函数将csv解析为一个哈希数组。需要更多信息来更好地回答您的问题。
wfypjpf42#
这个问题需要更具体地说明需要什么。但是,假设您所需要的只是上传和处理".csv"文件的代码,您可以修改此代码段以满足您的需要。
".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。你已经在这些模型上建立了适当的关系
Listings
Categories
2条答案
按热度按时间u4vypkhs1#
这可能不是一个好主意,一切都在一个控制器。您可能需要启动一个后台作业,以便在上传后处理您的文件。在后台作业中,您可以编写逻辑来解析CSV并写入多个表。
smarter_csv将使用CSV.parse函数将csv解析为一个哈希数组。
需要更多信息来更好地回答您的问题。
wfypjpf42#
这个问题需要更具体地说明需要什么。但是,假设您所需要的只是上传和处理
".csv"
文件的代码,您可以修改此代码段以满足您的需要。该代码片段假设您正在使用两个表或模型-
Listings
和Categories
。你已经在这些模型上建立了适当的关系