在我更改url列后,我有一个表,我正在尝试更新。目前,当我运行rake db:seed
时,数据被播种到数据库中,但是如果我对csv进行了更改,在这种情况下更改为url,我想更新表以反映该更改。目前,该表不会更新该值。
require 'csv'
datafile = Rails.root + 'db/data.csv'
CSV.foreach(datafile, headers: true) do |row|
Data.find_or_create_by({address: row[0]}) do |hr|
hr.address = row[0]
hr.city = row[1]
hr.state = row[2]
hr.zip = row[3]
hr.name = row[4]
hr.url = row[5]
end
end
CSV.foreach(datafile, headers: true) do |row|
Data.find_or_create_by({url: row[5]}) do |hr|
hr.url = row[5]
end
end
我尝试在url(row [5])上执行find_or_create_by,但这些更改没有被反映出来。如何使此种子文件更新postgreSQL数据库中CSV中的任何更改或新条目?
答案 0 :(得分:1)
CSV.foreach(datafile, headers: true) do |row|
Data.find_or_create_by({url: row[5]}) do |hr|
hr.url = row[5]
# call the save method, to saved the change
hr.save
end
end