我需要導入一個大的CSV文件,細分爲小塊,每隔X小時輸入一次。從小塊輸入記錄CSV(紅寶石在軌道上)
我做了以下rake任務
task :import_reviews => :environment do
require 'csv'
CSV.foreach('reviews.csv', :headers => true) do |row|
Review.create(row.to_hash)
end
end
使用Heroku的調度程序,我可以讓這個任務每天運行,但我想打破它在幾個塊,例如100記錄每一天:
這意味着我需要跟蹤導入的最後一行,並從該行開始+ = 1,下一次讓耙子任務運行,我該如何實現?
在此先感謝!
是否可以在foreach循環中寫入CSV,以便在創建記錄後設置處理後的字段? – Laurens
不知道您是否可以使用正常的CSV寶石更新字段,適合新的問題,我認爲使用fastercsv寶石可以。 請參閱http://stackoverflow.com/questions/3561278/parse-a-csv-update-a-field-then-save的方式 – peter
彼得,請你給我一個例子如何添加一個字段處理到CSV被讀取後?我在使用foreach循環寫入CSV時遇到困難。提前致謝。 – Laurens