次のコード:
[1,3,5].to_csv
=> "1,3,5\n" # this is good
[[1,3,5], [2,4,6]].to_csv
=> "135,246\n" # why doesn't it just do it for array of array?
ただし、代わりにこれが必要です。
data = [[1,3,5], [2,4,6]]
csv_string = FasterCSV.generate do |csv|
data.each {|a| csv << a}
end
=> "1,3,5\n2,4,6\n"
以下:
data = [[1,3,5], [2,4,6]]
csv_string = FasterCSV.generate {|csv| data.each {|a| csv << a}}
=> "1,3,5\n2,4,6\n"
問題は、配列の配列が与えられたときに、なぜto_csv
それを自動的に処理するように設計されていないのかということです。そのため、Railsでは次のことができます。
respond_to do |format|
format.csv { render :text => data.to_csv }