ruby 如何创建一个控制器将CSV文件数据导入到Rails中的多个表中?

kxe2p93d  于 12个月前  发布在  Ruby
关注(0)|答案(2)|浏览(90)

如何将数据从CSV文件行导入到Rails中的多个表中?
我正在尝试编写一个方法,用于上传和导入CSV文件,该文件包含需要使用smarter_csv gem转到现有数据库中不同表的数据。

u4vypkhs

u4vypkhs1#

这可能不是一个好主意,一切都在一个控制器。您可能需要启动一个后台作业,以便在上传后处理您的文件。在后台作业中,您可以编写逻辑来解析CSV并写入多个表。
smarter_csv将使用CSV.parse函数将csv解析为一个哈希数组。
需要更多信息来更好地回答您的问题。

wfypjpf4

wfypjpf42#

这个问题需要更具体地说明需要什么。但是,假设您所需要的只是上传和处理".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

该代码片段假设您正在使用两个表或模型-ListingsCategories。你已经在这些模型上建立了适当的关系

相关问题