我試圖創建在軌新的rake任務3.Rails的Rake任務 - 解析CSV文件並導入,如果它不存在
我有兩個的CSV文件(gas.csv & elec.csv ),其中使用數據每隔15分鐘從SQL數據庫更新一次。 的CSV的是如下的格式(我沒有在這個控制):
MeterID,RoundedTimeStamp,Value,Register
165,31/01/2012 00:00,1200,0
165,28/02/2012 00:15,1201,0
165,31/03/2012 00:30,1199,0
的更新用新值按月CSV,我想寫一耙導入任務導入將文件轉換爲模型的相關部分,用法(月,電,氣)。到目前爲止,我已經得到了ELEC進口,這是不是真的工作如下:
require 'csv'
desc "Importing Usage data from CSV file"
task import: :environment do
file = ".../elec.csv"
CSV.foreach(file, headers: true) do |row|
Usage.find_or_create_by_month({
month: row[1],
elec: row[2]
})
end
end
當我運行耙:從控制檯的進口,它進口的ELEC使用數據就好了,但不跳過重複。有沒有辦法可以導入這個文件沒有重複,也是一種方法來做同樣的氣體數據?
注意:我知道最好使用first_or_create而不是find_or_create,但這對_by_month不起作用。
乾杯!
'那裏(月:行[1])。first_or_create',find_or_create應爲Rails棄用methos名單上4. – Leito 2013-03-07 18:04:02
是的,我在APIdock上看到了,我是這麼說的,但它也沒用! – KevL 2013-03-07 20:01:10