将数据从csv文件导入到rails中的postgresql数据库

时间:2016-06-16 13:08:58

标签: ruby-on-rails postgresql csv import

我尝试了以下方法从rails中的csv文件导入数据,但无法理解我必须使用特定代码的位置以及如何使用特定的CSV列保存特定的db列。

require 'csv'    
csv_text = File.read('...')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
User.create!(row.to_hash)
end

我们应该在哪里保留要导入的csv文件。我们可以在File.read()中提供类似/Downloads/users.csv的路径吗? 如果csv文件中的字段被另一个表引用,我们可以使用如下所示:

require 'csv'    
csv_text = File.read('...')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Project.new
Project.client = project.where(:client_code, row.client_code)

我们可以使用这样的东西吗?

projects.csv:

project_code    project_name    client_code
   P1               Proj1         C1
   P2               Proj2         C2
   P3               Proj3         C3

clients.csv

client_code    client_name
   C1           Client1
   C2           Client2

project.rb(型号)        belongs_to:client

client.rb(型号)        has_many:projects

所以,在projects.csv中,我有client_code,我必须通过它将client_id加载到db中。

db中的项目表:

project_id  project_code  project_name  client_id

我已经提到了以下链接但完全无法理解。   Ruby on Rails - Import Data from a CSV file

0 个答案:

没有答案