我尝试了以下方法从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