Câu hỏi Thư viện CSV chuẩn của Ruby 1.9 là gì?


Khi tôi thử đá quý FasterCSV trên ứng dụng của mình, tôi nhận được lỗi này:

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

Nhân tiện, tôi đang sử dụng Rails 3, Ruby 1.9.2 và Rubygems 1.4.

Ai đó có thể giải thích cho tôi xin vui lòng làm thế nào để sử dụng thư viện CSV chuẩn cho Ruby 1.9. Tôi không có bất kỳ ý tưởng nào vì tôi rất mới với Rails.


76
2018-02-16 00:58


gốc




Các câu trả lời:


Ruby 1.9 đã chấp nhận FasterCSV làm thư viện CSV tích hợp của nó. Tuy nhiên, nó nằm trong thư viện chuẩn thay vì lõi của Ruby 1.9, vì vậy bạn cần phải yêu cầu nó theo cách thủ công trong ứng dụng của bạn.

Sau khi thêm

require 'csv'

với mã của bạn, sau đó bạn có thể làm những việc như

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

Xem Tài liệu CSV thư viện chuẩn của Ruby 1.9 để biết thông tin về cách sử dụng thư viện.


140
2018-02-16 05:09



Cảm ơn bạn rất nhiều. Làm thế nào tôi muốn tôi có thể bỏ phiếu cho câu trả lời của bạn nhưng hệ thống là nói với tôi để có ít nhất 15 danh tiếng. Các tham số trong CSV.parse ("này, là, của tôi, dữ liệu") có nghĩa là gì? Tôi biết điều này là quá nhiều yêu cầu nhưng tôi thực sự mới để ruby ​​trên đường ray. - johan
đó không phải là thông số ... đó chỉ là một ví dụ mà anh ta đưa ra cho chuỗi "this, is, my, data" đang được phân tích cú pháp - jpwynn
Cảm ơn bạn rất nhiều. Tất cả những gì tôi nghĩ là những thông số. Tôi đã giải quyết được vấn đề. Tôi đã biết cách nhập dữ liệu CSV trong Ruby 1.9.2. - johan


Xem cách tôi giải quyết vấn đề này!

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

-6
2018-05-22 00:39



-1 Bạn thậm chí không bận tâm để hiểu câu hỏi và câu trả lời ba tuổi hiện có trước khi đăng. Nếu bạn đến sau ba năm câu trả lời của bạn sẽ được cập nhật hơn, nhưng nó không phải là. - Mark Thomas