Ich habe Schwierigkeiten, eine einfache Rake-Aufgabe erstellen, die eine CSV-Dump der Datenbanktabelle "Baselines" generieren wird.Rails: Erstellen einer CSV-Datei in einer Rake-Task - kann nicht auf eine Klassen-Datenbank spalten_Spalten
task :send_report => :environment do
path = "tmp/"
filename = 'data_' + Date.today.to_s + '.csv'
Baseline.all.each do
CSV.open(path + filename, "wb") do |csv|
csv << Baseline.column_names
Baseline.all.each do |p|
csv << p.attributes.values_at(*column_names)
end
end
end
end
Ich erhalte den Fehler
undefined local variable or method `column_names' for main:Object
Ich bin völlig unklar, warum das so ist .... Baseline.column_names wird in der Konsole arbeiten, in einer Ansicht etc etc.
Beliebig Gedanken würden geschätzt.
Vielen Dank! - das scheint zu funktionieren (es wirft keinen Fehler). Das Problem, das ich jetzt habe, ist, dass die Datei nicht im tmp-Verzeichnis im öffentlichen Ordner erscheint. – GhostRider
Warum sollte es? Sie fragen nach 'tmp /' relativ zum aktuellen Verzeichnis, das wahrscheinlich der Rails-Root ist. Wenn du es dort haben wolltest: 'path = Rails.root.join ('public/tmp')'. – tadman
Vielen Dank. Als korrekt markiert, da beide Kommentare zusammen mein Problem gelöst haben – GhostRider