Was ist die Standard-CSV-Bibliothek von Ruby 1.9?

77

Wenn ich das FasterCSV-Juwel in meiner Anwendung ausprobiere, wird folgende Fehlermeldung angezeigt:

Please switch to Ruby 1.9's standard
CSV library.  It's FasterCSV plus
support for Ruby 1.9's m17n encoding
engine.

Ich verwende übrigens Rails 3, Ruby 1.9.2 und Rubygems 1.4.

Kann mir bitte jemand erklären, wie man die Standard-CSV-Bibliothek für Ruby 1.9 benutzt. Ich habe überhaupt keine Ahnung, weil ich sehr neu bei Rails bin.

johan
quelle

Antworten:

140

Ruby 1.9 hat FasterCSV als integrierte CSV-Bibliothek übernommen. Es befindet sich jedoch in der Standardbibliothek und nicht im Kern von Ruby 1.9. Sie müssen es daher manuell in Ihrer Anwendung benötigen.

Nach dem Hinzufügen von a

require 'csv'

Mit Ihrem Code können Sie dann Dinge wie tun

CSV.parse("this,is,my,data")

Siehe Ruby 1.9 der Standardbibliothek CSV Dokumentation für Informationen über die Bibliothek.

Dylan Markow
quelle
Ich danke dir sehr. Wie ich wünschte, ich könnte für Ihre Antwort stimmen, aber das System sagt mir, dass ich mindestens 15 Ruf haben soll. Was bedeuten die Parameter in CSV.parse ("das sind meine Daten")? Ich weiß, das ist zu viel zu fragen, aber ich bin wirklich neu in Ruby on Rails.
Johan
3
Das sind keine Parameter ... das ist nur ein Beispiel für eine Zeichenfolge "Dies sind meine Daten", die analysiert wird
jpw
Ich danke dir sehr. Ich dachte nur, das sind Parameter. Ich habe das Problem bereits gelöst. Ich weiß bereits, wie man CSV-Daten in Ruby 1.9.2 importiert.
Joan
-6

Sehen Sie, wie ich dieses Problem gelöst habe!

require 'fastercsv'
require 'csv'

secrecy_levels_array = [['SUPERSECRET', 'Supersecret Data', "Tell No One"],
['SEMISECRET', 'Semisecret Data', 'Tell Some People'],
['UNSECRET', 'Unsecret Data', 'Tell Everyone']]

puts '\n'
secrecy_levels_array.each do |line|
  puts line.to_csv
end
Ricardo Oliveira
quelle
4
-1 Sie haben sich nicht einmal die Mühe gemacht, die vorhandene dreijährige Frage und Antwort vor dem Posten zu verstehen. Wenn Sie nach drei Jahren eintreffen, sollte Ihre Antwort aktueller sein, ist es aber nicht.
Mark Thomas