Ruby 在 Rails 上用单独的行创建 CSV

Ruby on Rails create CSV with separate lines

我正在尝试创建一个 csv 文件供用户下载。我可以正常创建文件,但在为每个单独的条目添加新行时遇到问题。我阅读了一些建议添加 csv << "\n" 的旧回复,但这似乎无法正常工作。 Excel 能够正确打开 CSV 文件,但我需要能够在记事本中查看它。在记事本中,它只是一长串单词。

我使用的代码是:

csv_file = CSV.generate(headers: true) do |csv|
  csv << attributes
  @volunteers.each do |v|
    csv << [v.id, v.last_name, v.first_name]
  end
end

send_data csv_file, filename: "volunteers.csv" 

默认情况下,分隔符是新行 \n,但如果您在 Windows 上用记事本打开它,则分隔符需要换行和换行 \r\n

所以这样做...

csv_file = CSV.generate(headers: true, row_sep: "\r\n" ) do |csv|