Ich benutze eine Rake-Aufgabe und das csv-Modul, um eine csv-Schleife zu durchlaufen, die benötigten Daten zu extrahieren und zu ändern und dann jede neue Datenzeile an eine zweite csv anzuhängen. Jedoch scheint jede Zeile die vorherige Zeile in der neuen CSV zu überschreiben/ersetzen, anstatt sie als neue Zeile danach anzuhängen. Ich habe mir die Dokumentation angesehen und gegoogelt, kann aber keine Beispiele finden, wie Zeilen an die CSV anders angehängt werden.Daten werden überschrieben, anstatt an CSV zu hängen
require 'csv'
namespace :replace do
desc "replace variant id with variant sku"
task :sku => :environment do
file="db/master-list-3-28.csv"
CSV.foreach(file) do |row|
msku, namespace, key, valueType, value = row
valueArray = value.split('|')
newValueString = ""
valueArray.each_with_index do |v, index|
recArray = v.split('*')
handle = recArray[0]
vid = recArray[1]
newValueString << handle
newValueString << "*"
variant = ShopifyAPI::Variant.find(vid)
newValueString << variant.sku
end
#end of value save the newvaluestring to new csv
newFile = Rails.root.join('lib/assets', 'newFile.csv')
CSV.open(newFile, "wb") do |csv|
csv << [newValueString]
end
end
end
end
Danke Thomas! –