Що таке стандартна бібліотека CSV Ruby 1.9?


77

Коли я спробую дорогоцінний камінь FasterCSV у своїй програмі, я отримую таку помилку:

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

До речі, я використовую Rails 3, Ruby 1.9.2 та Rubygems 1.4.

Хтось може пояснити мені, будь ласка, як користуватися стандартною бібліотекою CSV для Ruby 1.9. Я взагалі не маю ідеї, бо я дуже новачок у Rails.

Відповіді:


140

Ruby 1.9 прийняв FasterCSV як свою вбудовану бібліотеку CSV. Однак він знаходиться в стандартній бібліотеці, а не в ядрі Ruby 1.9, тому вам потрібно вручну вимагати його у своєму додатку.

Після додавання a

require 'csv'

до свого коду, ви можете робити такі речі, як

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

Див Ruby 1.9 в стандартній бібліотеці CSV документації для отримання інформації про використання бібліотеки.


Дуже дякую. Як би я не хотів проголосувати за вашу відповідь, але система каже мені мати щонайменше 15 репутацію. Що означають параметри в CSV.parse ("це, є, мої дані")? Я знаю, це занадто багато, щоб запитати, але я справді новачок у рубіні на рейках.
Джохан,

3
ті НЕ параметри ... це просто приклад , він дає рядка «це, це мій, дані» , що розбирається
JPW

Дуже дякую. Все, що я думав, це параметри. Я вже вирішив проблему. Я вже знаю, як імпортувати дані CSV у Ruby 1.9.2.
Джохан

-6

Подивіться, як я вирішив цю проблему!

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

4
-1 Ви навіть не потрудились зрозуміти існуюче трирічне запитання та відповідь перед публікацією. Якщо ви заходите через три роки, ваша відповідь повинна бути більш сучасною, але це не так.
Марк Томас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.