0
我有一個表,我試圖更新後,我已經對url列進行了更改。目前,我在運行rake db:seed
時將數據嵌入到數據庫中,但如果我對csv進行了更改(在本例中爲url),我想更新表以反映該更改。目前,該表格不會更新該值。使用find_or_create_by更新表
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的任何更改或新條目?
'find_or_create'不會更新記錄,如果它已經存在。如果要更新現有記錄,則不希望顯式調用'save'或'update_attributes'方法。 – Baldrick