le code suivant:.Pourquoi traite-t-RubyGems FasterCSV [[1,3,5], [2,4,6]] to_csv comme "135246 n"
[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?
mais exigent plutôt:
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"
ou moins:
data = [[1,3,5], [2,4,6]]
csv_string = FasterCSV.generate {|csv| data.each {|a| csv << a}}
=> "1,3,5\n2,4,6\n"
La question est, quand donné un tableau de tableau, pourquoi est-to_csv
pas conçu pour gérer automatiquement, de sorte que Rails, nous pouvons faire
respond_to do |format|
format.csv { render :text => data.to_csv }
comment est-ce que [[1,3,5], [2,4,6]] chaque {| line | met line.to_csv} 'travailler avec le rendu? parce que vous ne pouvez rendre qu'une seule fois, je suppose que vous devrez utiliser 's + = line.to_csv +" \ n "', ou '(@ data.map {| a | a.to_csv}). join (" \ n ")' –